Mam procedurę przechowywaną, która wygląda jak:Dostęp% ROWTYPE z procedura składowana z Java
PROCEDURE get_curx( p_buf IN ni_imsi%ROWTYPE,
p_bufx IN ni_imsi%ROWTYPE,
p_cur OUT CurTyp,
p_where IN VARCHAR2 DEFAULT '',
p_orderby IN VARCHAR2 DEFAULT '',
p_max IN NUMBER DEFAULT 0,
p_lock IN NUMBER DEFAULT 0,
p_hint IN VARCHAR2 DEFAULT 'NONE',
p_debug IN NUMBER DEFAULT 0,
p_count IN BOOLEAN DEFAULT FALSE);
wzywam tę procedurę z programu JAVA jak ten:
CallableStatement cs = connection.prepareCall("{call ni_imsi_pkg.get_curx(?,?,?,?,?,?)}");
cs.setObject(1, ?); // i have no clue what to mention here
cs.setObject(2, ?); //i have no clue what to mention here
cs.registerOutParameter(3, OracleTypes.CURSOR);
cs.setString(4, " WHERE current_state = 60000 AND rownum <= 2 ");
cs.setString(5, " ORDER BY imsi_number");
cs.setInt(6, 5);
Ale nie mam pojęcia, jak ustawić pierwsze dwa parametry. Proszę mi pomóc. Dzięki
Co chcesz umieścić w tych zmiennych, a raczej skąd one pochodzą i jaki typ obiektu znajdują się po stronie Java? –
Wątpię, czy możesz to nazwać od JDBC. RowType jest specyficzne dla PL/SQL. To było prawdopodobnie zdefiniowane gdzieś w paczce. Prawdopodobnie będziesz musiał utworzyć/wywołać procedurę pomocniczą w PL/SQL, która wywołała dla ciebie tę klasę z odpowiednimi parametrami. – Mike