Ошибка node-oracledb при выполнении хранимой процедуры - PullRequest
0 голосов
/ 26 ноября 2018

Я использую Node 10.x и Oracledb 3.0

Я пытаюсь выполнить хранимую процедуру в node.js

У меня есть блок исключения в процедуре, напримерниже:

EXCEPTION
WHEN NO_DATA_FOUND THEN
OUT_STATUS:='FAILURE';
OUT_STATUS_DESC:='USER NOT MAPPED TO A GROUP';
WHEN OTHERS THEN
OUT_STATUS:='FAILURE';
OUT_STATUS_DESC:=dbms_utility.format_error_backtrace;

всякий раз, когда управление переходит к выбрасыванию исключительного блока ниже ошибки в файле node.js.

Ошибка: ORA-24338: дескриптор оператора не выполнен

Но, явно, если я выполняю процедуру в БД с теми же параметрами IN, это дает правильные параметры OUT с ошибкой, и CURSOR закрывается.

Это типы параметров OUT в процедуре.

OUT_STATUS OUT VARCHAR2, OUT_STATUS_DESC OUT VARCHAR2, OUT_MENU_NAME OUT SYS_REFCURSOR

В чем может быть проблема?

1 Ответ

0 голосов
/ 30 ноября 2018

Все переменные OUT должны быть установлены на что-то, даже если вы не собираетесь использовать их в коде node-oracledb, см. https://github.com/oracle/node-oracledb/issues/886

Оказывается, это верно для всех драйверов БД Oracle (например, node-oracledb) на основе Oracle C 'OCI' API, но симптомы проблемы чаще встречаются в node-oracledb.

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