php - 将 MySQL 查询更改为 Oracle
问题描述
我有下面的 SQL 查询在 MySQL 数据库服务器上工作,但生产服务器在 Oracle DB 上运行。如果有人可以协助将此查询转换为在 Oracle DB 中工作,那将是欣喜若狂:
SELECT LAS_NAME as lastName,
OTHER_NAMES as firstName,
NUBAN as accountNumber,
FLG as account_status,
CUS_EMAIL as emailAddress,
CUS_MOBILE as phoneNumber
FROM " . TABLE_NAME . "
WHERE `OTHER_NAMES` LIKE ? AND
(CUS_EMAIL = ? OR
CUS_MOBILE = ?)
注意:这个查询在 MySQL 上运行良好,但是当我在 Oracle DB 上尝试时,一直返回错误。
解决方案
就我有限的 Oracle 知识而言,它应该是这样的:
SELECT LAST_NAME as lastName,
OTHER_NAMES as firstName,
NUBAN as accountNumber,
FLG as account_status,
CUS_EMAIL as emailAddress,
CUS_MOBILE as phoneNumber
FROM TABLE_NAME
WHERE OTHER_NAMES LIKE '?%?' AND
(CUS_EMAIL = '?' OR
CUS_MOBILE = '?');
记得在 PLSQL 语句的末尾加上一个 ;(分号)。
至于类似的语句,请记住使用“单引号”,因为 Oracle 它对字符串非常具体。
表名不应该用引号,PLSQL可以是一个残酷的情妇,如果她愿意。希望这可以帮助。
推荐阅读
- python - Pyinstaller 没有名为 pytube 的模块
- php - 如何将日期时间从默认时区 (IST) 获取到基于不同用户的时区
- scala - 词对同现
- node.js - 如何调用另一个模式(mongodb)中的模式的数据
- biopython - Biopython PDB - 寻找 RNA 链
- php - 如何在magento 2中以编程方式取消订单
- c++ - 如何使用 FString 键和通用指针值创建 TMap?
- anaconda3 - 源 /opt/anaconda3/bin/activate 失败
- azure-functions - 当我将函数的身份验证级别设置为 FUNCTION 时,从 Azure APIM 请求 Azure 函数
- python - 从 PySpark 中的 Dataframe 列获取最后一个/分隔值