Php Oracle存储过程使用绑定参数失败
我在Oracle中的一个包中有一个存储过程,它接受几个Php Oracle存储过程使用绑定参数失败,php,oracle,stored-procedures,oracle-sqldeveloper,parameterized-query,Php,Oracle,Stored Procedures,Oracle Sqldeveloper,Parameterized Query,我在Oracle中的一个包中有一个存储过程,它接受几个NUMBER类型作为参数,当显式传递整数时,它可以正常工作 但是,当使用绑定参数(在SQL Developer中)时,我会得到错误错误报告-Missing defines。在PHP中运行它时,它会无声地失败。考虑到使用绑定参数的安全性优势,我不希望用PHP连接查询,而是这样做(是的,我可以使用intval(),它会处理这个问题),因为这个问题不仅仅是带有整数参数的包 这在成功运行和已验证的数据库更改中都有效 BEGIN package_nam
NUMBER
类型作为参数,当显式传递整数时,它可以正常工作
但是,当使用绑定参数(在SQL Developer中)时,我会得到错误错误报告-Missing defines
。在PHP中运行它时,它会无声地失败。考虑到使用绑定参数的安全性优势,我不希望用PHP连接查询,而是这样做(是的,我可以使用intval()
,它会处理这个问题),因为这个问题不仅仅是带有整数参数的包
这在成功运行和已验证的数据库更改中都有效
BEGIN package_name.procedure_name(
1,
2
); END;
然而,事实并非如此
BEGIN package_name.procedure_name(
:VARIABLE_1,
:VARIABLE_2
); END;
这也不是:
BEGIN package_name.procedure_name(
VARIABLE_1 => :VARIABLE_1,
VARIABLE_2 => :VARIABLE_2
); END;
在sqldeveloper中运行调试提供了逻辑来声明类型,然后将它们作为变量传递,但是在那里添加绑定也会失败
考虑到过程运行时静态参数没有问题,您对产生错误的原因有何看法?您可以这样使用:
SQL> variable VARIABLE_1 number;
SQL> variable VARIABLE_2 number;
SQL> BEGIN
package_name.procedure_name(
:VARIABLE_1,
:VARIABLE_2
);
END;/
最终,这需要用PHP来运行(如果不清楚的话,我很抱歉),那么按照这个逻辑我该怎么做呢?@kchason正如我所理解的,你从SQL开发人员的角度问我,对不起,但我不知道与PHP的关系。谢谢,尽管你命名
变量_1
,但我还是会尝试第一步,而绑定:变量_1
,据我所知,这是行不通的。。。