【发布时间】:2014-11-26 06:56:22
【问题描述】:
我有一个看起来像的存储过程:
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 端是什么类型的对象?
-
我怀疑你可以从 JDBC 调用它。 RowType 是特定于 PL/SQL 的。它可能是在某个地方的包中定义的。您可能需要在 PL/SQL 中创建/调用一个帮助程序,该程序使用适当的参数为您调用此类。