Oracle/PHP - 更新时出现ORA-00911无效字符错误

5
我正在运行一个PHP脚本,从Oracle DB实例更新表格。
首先,我收到一个带有JSON的对象:
[{
  "lot": "KLMHA17N9N00",
  "requestor": "B10078",
  "id": "FRESHLOT",
  "username": "B26696",
  "password": "B26696"
}, {
  "lot": "KLMHA17R1800",
  "requestor": "B10078",
  "id": "FRESHLOT"
}]

这个JSON没有问题,因为我在其他项目中已经使用过它。
然后,我在解析结果到$rmrid对象后创建查询。
$db_query = "update ao_lots 
                 set RMRID='".$rmrid->requestor."-".$rmrid->id."' 
               where ALOT_NUMBER='".$rmrid->lot."';";

如果我回显这个查询,我会得到这个:
update ao_lots 
   set RMRID='B10078-FRESHLOT' 
 where ALOT_NUMBER='KLMHA17N9N00';

我看不出这里有任何问题,但当我执行查询时,我收到此警告并且没有任何更新:

警告:oci_execute() [function.oci-execute]:ORA-00911:无效字符

我搜索了一下这个错误代码,但是我找到的信息无法解决它。

非常感谢您的任何建议。


1
请更新问题,附上 DESCRIBE AO_LOTS 的输出。 - OMG Ponies
如果您能尝试运行从SQL*Plus生成的SQL语句,并查看是否出现相同的错误,那将非常有帮助。如果没有语句错误,您可以回滚更新操作。 - dpbradley
我在 SQL*Plus 上运行了这个语句,没有出现任何问题。我很久以前就一直这样做了,但现在我想自动化这个过程。 - Arturo
1个回答

15

在SQL语句的末尾不需要使用分号。

分号被SQL*Plus和大多数其他工具用来表示"我已经完成编写语句,现在请执行它"


这解决了问题,我以为我已经尝试过了,谢谢! - Arturo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接