我有一个接收字符串的变量:
'BA','RJ','SC'
我需要以这种格式发送到db作为字符串,但我收到错误:
PLS-00103:在期待以下其中一项时遇到符号“BA”:),*& | = - +
我打印$ sql以查看值的来源:
BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES(1,''BA','RJ','SC'','132','',:status,:refc); END;
所以,这就是我用PHP传递给程序的方法:
$sql = "BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES(".$codemp.",'".$estados."','".$diac."','".$dian."',:status,:refc); END;";
变量$estados
收到:'BA','RJ','SC'
所以,我的问题是:
如何使用php将这种带'
和,
的字符串传递给我的程序?
我尝试\
但是没有用。
我缺少什么?
任何问题,由我的客人。
感谢。
修改
BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES
(
1,
''BA','RJ','SC'', // this supposed to be 1 field with strings...
'132',
'',
:status,
:refc
);
END;
答案 0 :(得分:1)
在Oracle中,通过将单引号加倍来逃避单引号。这会将完整的逗号分隔字符串视为带有转义引号的一个字符串文字。
''BA'',''RJ'',''SC''
这假设我理解正确,并且您将这些值作为字符串文字传递。
最终,您的查询应如下所示:\
BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES
(
1,
'''BA'',''RJ'',''SC''', // <-- Doubled quotes inside the quoted string.
'132',
'',
:status,
:refc
);
END;