php odbc_execute для хранимой процедуры возвращает «неправильное число или типы аргументов» - PullRequest
0 голосов
/ 13 мая 2019

Выполнение php odbc_execute для хранимой процедуры Oracle, которая всегда завершается ошибкой, возвращая PLS-306: неверное количество или типы аргументов в вызове.

Паарам 1 равен IN, а параметры 2 и 3 - OUT.Независимо от того, какие типы параметров я использую для параметров 2 и 3, всегда возникает одна и та же ошибка.Я искал в Интернете, но все, что JSUT извергает то, что в руководстве по PHP.

$a = '05/11/2019';
$b = '';
$c = '';

$conn = @odbc_connect(dsn, userid, pwd);
$stmt    = odbc_prepare($conn, "CALL name(?,?,?)");
$success = odbc_execute($stmt, array($a, $b, $c));

Кто-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 13 мая 2019

Паарам 1 ВХОДИТ, а параметры 2 и 3 - ВНЕ. Независимо от того, какие типы параметров я использую для параметров 2 и 3, всегда выдается одна и та же ошибка. Я искал в Интернете, но все, что есть, не извергает то, что есть в руководстве по php.

Это ваша проблема, вы приводите неверное количество аргументов. Пожалуйста, ознакомьтесь с документацией Oracle по хранимым процедурам. https://docs.oracle.com/cd/B28359_01/appdev.111/b28843/tdddg_procedures.htm

Ваша хранимая процедура имеет 3 параметра - 1 параметр IN и 2 параметра OUT. При вызове процедуры вы должны указывать только 1 параметр - параметр IN.

Параметры 2 OUT будут тем, что возвращается вам процедурой. Вы не предоставляете значения для этих параметров OUT - значения будут вычислены процедурой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...