java - 如何设置dbms_sql.Number_Table?

标签 java jdbc plsql

这是我的 PLSQL 过程:

procedure ChangeRequest(RequestID number,
                        MethodID number,
                        FieldIDs dbms_sql.Number_Table,
                        FieldValues dbms_sql.Varchar2_Table,
                        SessionID IRBiS_Const.TSessionID default null)

我想在 Java 中使用 CallableStatement 设置 FieldIDs dbms_sql.Number_Table 参数,但我不知道如何操作。那个东西是什么?数组还是什么? CallableStatement 中是否有该类型的 setter 方法?

最佳答案

好吧,我做到了:

sessionFactory.getCurrentSession().doWork(new Work() {
                public void execute(Connection con) throws SQLException {
                    OracleCallableStatement callableStatement = null;
                    try {
                        callableStatement = (OracleCallableStatement) con
                                .prepareCall("begin PREQUEST.ChangeRequest(?,?,?,?,?); end;");
                        callableStatement.setInt(1, request_id);
                        callableStatement.setInt(2, method_id);

                        callableStatement.setString(5, sessionId);
                        callableStatement.setPlsqlIndexTable(3, field_ids,
                                field_ids.length, field_ids.length,
                                OracleTypes.NUMBER, 0);
                        callableStatement.setPlsqlIndexTable(4, fieldValues,
                                field_ids.length, field_ids.length,
                                OracleTypes.VARCHAR, 0);
                        callableStatement.execute();

                    } finally {
                        if (callableStatement != null) {
                            callableStatement.close();
                        }
                    }
                }
            });

您应该注意的主要是prepareCall方法:

callableStatement = (OracleCallableStatement) con
                                    .prepareCall("begin PREQUEST.ChangeRequest(?,?,?,?,?); end;");

如你所见,里面是PLSQL语句。

关于java - 如何设置dbms_sql.Number_Table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26137693/

相关文章:

java - 尽管变量已初始化,但我得到可能未初始化错误

java - 将 Selenium 测试套件 (Eclipse) 与 TFS 集成

java - 在java中设计sql查询存储的最佳方法是什么?

sql - Impala或Hive在其他SQL语法中是否具有类似于IN子句的内容?

sql - 如何在plsql中的case语句中使用OR合并多个案例

java - Repaint() 在 run() 函数之外不起作用

java - 使用jdbc连接sql server错误

java - MariaDB JDBC 客户端日志记录

c# - 我怎样才能在oracle中输出一个参数作为varchar2

java - 在 DOM 加载时加载 java applet