0
好吧我有一个问题绑定输出参数是从Oracle数据库返回一个表。PHP:绑定变量到表类型输出参数
这里有一个例子:
procedure_name(
p_first IN NUMBER,
p_second IN VARCHAR2,
x_table_name OUT some_table_type,
x_row_count OUT NUMBER
);
一切工作在Oracle这个程序工作的罚款。
我过来PHP我尝试这一点,并没有去:
$first = 55;
$second = 'Hello';
$stm = oci_parse($conn, "begin procedure_name(:p_first, :p_second, :x_table_name, :x_row_count)); end;");
oci_bind_by_name($stm, ":p_first", $first, 11, SQLT_INT);
oci_bind_by_name($stm, ":p_second", $second, 11, SQLT_INT);
oci_bind_by_name($stm, ":x_table_name", $table_output, -1, OCI_B_NTY);
oci_bind_by_name($stm, ":x_row_count", $table_row_count, 11, SQLT_INT);
oci_execute($stm);
而作为一个结果我得到的结果:ORA-01008:并非所有变量的约束。
现在我做的还需要弄清楚如何获取变量$ table_output为对象或只是一个assoc命令数组的数组,但还没有得到那么远,:/
您不能对占位符使用变量名称。它们只能用于需要表达式的地方。 – Barmar
在程序定义上使用这些参数没有意义。您应该参数化'CALL procedure_name(:p_first,:p_second,:x_table_name,:x_row_count)'查询。 – Barmar