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

Тема в разделе "Java", создана пользователем -, 2 сен 2008.

  1. Гость

    мой statement
    Код (Text):
    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 пробовала с такими же данными добавить, добавляется.

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    ты уверен в семантике вызова?
    я как то больше с таким сталкивался "{P_AGNLIST_BASE_INSERT(?,?,?.....)}"

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

    по именам сетать пробовал?
     
  3. Гость

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
Загрузка...

Поделиться этой страницей