5
我有一個存儲過程,它看起來像:從Java訪問存儲過程%ROWTYPE
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);
我打電話從Java程序這個過程是這樣:
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);
但我不知道如何設置前兩個參數。請幫助我。謝謝
你想要在這些變量中放置什麼,或者更確切地說它們來自哪裏以及它們在Java端是什麼類型的對象? – 2014-10-01 13:37:36
我懷疑你可以從JDBC調用它。 RowType是PL/SQL特定的。它可能在某個地方被定義在軟件包中。您可能需要在PL/SQL中創建/調用一個幫助程序,並使用適當的參數爲您調用此類。 – Mike 2014-10-01 14:04:10