Member 12324523 Ответов: 1

Как я могу передать значения в строковых параметрах хранимой процедуре


Имя Процедуры: Пользователи
Parameters : @fromdate , @Todate,@Users

this is what i did try (CallableStatement s = conn.prepareCall("{CALL Users(@fromdate=?,@Todate=?,@Users=?)}")) {
s.getDate(FromDate);
s.getDate(ToDate);
s.getstring(Users)
try (ResultSet rs = s.executeQuery()) {
rs.next();
System.out.println(rs.getString("response"));
}


но его переход в catchblock и дает это исключение параметр 05/01/2017 не был определен для пользователей хранимых процедур.

Что я уже пробовал:

я попробовал выше код, но он не работает

Richard MacCutchan

Вы пытаетесь извлечь значения параметров перед выполнением запроса. Я думаю, что ваш код задом наперед.

Member 12324523

не могли бы вы показать мне, как это сделать, поскольку я новичок в этом деле

Member 12324523

myStoredProcedureCall =
sybConn. prepareCall ("{вызов my_stored_procedure (?, ?, ?, ?, ?, ? , ?, ?, ?)}");
myStoredProcedureCall. setString(1, " ONE");
myStoredProcedureCall. setString(2, " TWO");
myStoredProcedureCall. setString(9, " девять");
Набор paramResults = myStoredProcedureCall.метод executequery();

1 Ответов

Рейтинг:
0

Zahid Mughal

Вот как называется параметрическая процедура в java

import java.sql.CallableStatement;

...

    //
    // Prepare a call to the stored procedure 'demoSp'
    // with two parameters
    //
    // Notice the use of JDBC-escape syntax ({call ...})
    //

    CallableStatement s = conn.prepareCall("{CALL Users(@fromdate=?,@Todate=?,@Users=?)}");

    s.setString("1/2/2017", "2/3/2017","username");

Для Целых Чисел:
cStmt.setInt(2, 1);


Member 12324523

я пытался, но это не работает