У меня следующая странная проблема. У меня есть следующая процедура в пакете:
PROCEDURE createSmth (p_param1 IN VARCHAR2,
p_param2 IN NUMBER,
p_param3 IN DATE,
p_param4 IN DATE,
p_description IN VARCHAR2,
p_last_login IN VARCHAR2 DEFAULT NULL,
o_sid OUT NUMBER,
p_ret OUT NUMBER,
p_mess OUT VARCHAR2);
Приложение, вызывающее эту процедуру, использует «oracledb»: «^ 4.2.0». Ниже приведен журнал разработки (отформатирован для облегчения чтения):
DBService: calling stored procedure 'BEGIN pkg.createSmth(
:p_param1,
:p_param2,
:p_param3,
:p_param4,
:p_description,
:p_last_login,
:o_sid,
:p_ret,
:p_mess); END;'
with bindings
[{"dir":3001,"type":2001,"val":"test"},
{"dir":3001,"type":2010,"val":37},
{"dir":3001,"type":2001,"val":"01/06/2020"},
{"dir":3001,"type":2001,"val":"03/06/2020"},
{"dir":3001,"type":2001,"val":"test233"},
{"dir":3001,"type":2001,"val":"admin"},
{"dir":3003,"type":2010},
{"dir":3003,"type":2010},
{"dir":3003,"type":2001}]
pkg.createSmth: get connection - 1 ms
pkg.createSmth: execute statement - 225 ms
pkg.createSmth: get values - 225 ms
В процессе производства происходит следующее (отформатировано для облегчения чтения):
DBService: calling stored procedure 'BEGIN pkg.createSmth(
:p_param1,
:p_param2,
:p_param3,
:p_param4,
:p_description,
:p_last_login,
:o_sid,
:p_ret,
:p_mess); END;'
with bindings
[{"dir":3001,"type":2001,"val":"test"},
{"dir":3001,"type":2010,"val":37},
{"dir":3001,"type":2001,"val":"01/06/2020"},
{"dir":3001,"type":2001,"val":"03/06/2020"},
{"dir":3001,"type":2001,"val":"test233"},
{"dir":3001,"type":2001,"val":"admin"},
{"dir":3003,"type":2010},
{"dir":3003,"type":2010},
{"dir":3003,"type":2001}]
pkg.createSmth: get connection - 0 ms
Unexpected DB error
undefined: Error: ORA-01843: not a valid month
ORA-06512: at line 1, trace: Error: ORA-01843: not a valid month
ORA-06512: at line 1
Как на dev, так и на prod, тип oracledb для параметров IN установлен на STRING.
Выполнение select sysdate from dual
возвращает тот же формат даты в обоих БД: 16-JUN-20
.
Таким образом, любой намек на решение этой проблемы будет очень признателен.