plsql — PHP: привязка переменной к выходному параметру табличного типа

Хорошо, у меня есть выходной параметр привязки проблемы, который должен вернуть таблицу из базы данных Oracle.

вот пример:

procedure_name(
p_first IN NUMBER,
p_second IN VARCHAR2,
x_table_name OUT some_table_type,
x_row_count OUT NUMBER
);

Все отлично работает в оракуле, работающем с этой процедурой.

Я перехожу на 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 в виде массива объектов или просто связанного массива, но пока не дошло до этого: /

0

Решение

Проблема была решена с помощью:

 $table_output = oci_new_collection($conn,'some_table_type','schema');

до связывания.

Большой ресурс был страница 204 до 212:
http://www.oracle.com/technetwork/database/database-technologies/php/201212-ug-php-oracle-1884760.pdf

В нем много примеров того, как извлекать данные пользовательских полей и типов таблиц из процедур и функций Oracle.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]