首页 > 解决方案 > 将 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 上尝试时,一直返回错误。

标签: phpmysqloracle

解决方案


就我有限的 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可以是一个残酷的情妇,如果她愿意。希望这可以帮助。


推荐阅读