2009-04-23 2 views
1

У меня есть процедура PL/SQL, которая принимает в качестве входного параметра ТАБЛИЦУ НОМЕРА ТИПА (10).привязка массива PHP к вызову Oracle PL/SQL

Я пытаюсь назвать это php прямо сейчас. Связывание не вызывает никакой ошибки, все в порядке. Но содержание моей привязки не та, которую я ожидал!

Например я связываю массив: Array (19465,19467) На PL/SQL стороны я получаю этот вид значений: -2.50000000000000000000000000000000E + 107

Оказывается, что-то не так происходит в точности/длина/тип? моей привязки, но я потерян.

Вот моя привязка: oci_bind_array_by_name ($ stmt, ': name', $ array, -1, SQLT_NUM);

+0

Вы когда-нибудь задумывались над этим? Здесь мы в 2015 году, и я вижу ту же проблему. –

ответ

0

Попробуйте использовать «SQLT_INT» вместо «SQLT_NUM». Хотя INTEGER является синонимом NUMBER (38), SQLT_NUM не работает.

(Из отчетов об ошибках PHP: [27 октября 2006 8:37 утра UTC] [email protected] Изменение SQLT_NUM к SQLT_INT и она отлично работает Там нет никакой разницы для OCI8 между этими двумя типами связывания (они есть. , обрабатывается одной и той же функцией таким же образом), поэтому должно быть некоторая разница в самой библиотеке OCI.)

+0

Я пробовал это, но это ничего не изменило, к сожалению. –