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