Callablestatement для процедуры Oracle

  • Автор темы Guest
  • Дата начала
G

Guest

мой statement
Код:
CallableStatement callst = connection
.prepareCall("begin P_AGNLIST_BASE_INSERT("
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?" + "); end;");

всего 52 параметра
многие из них я устанавливаю, как null, например:
setNull(23, Types.NULL)
дату устанавливаю как
Date dDISCDATE = new Date(111111);
callst.setDate(37, dDISCDATE);
пробовала и через NULL
а последний выходной - callst.registerOutParameter(52, Types.FLOAT);
ошибка практически всегда:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'P_AGNLIST_BASE_INSERT'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
в самом PL\SQL development пробовала с такими же данными добавить, добавляется.

в чем вообще может быть ошибка?
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Код:
CallableStatement callst = connection
.prepareCall("begin P_AGNLIST_BASE_INSERT("
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?" + "); end;");
ты уверен в семантике вызова?
я как то больше с таким сталкивался "{P_AGNLIST_BASE_INSERT(?,?,?.....)}"

и где сигнатура хранимки? а то гадать не хочется

по именам сетать пробовал?
 
G

Guest

Проблема была с blob. мне нужно было записать в БД null и всего-то. но blob категорически не записывался через setNull. в результате использовала oracle.sql.BLOB = null. и засетила его как Blob.
так что синтаксис правильный.
а как по именам сетить? я видела примеры, где только вопросы.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!