将Oracle htp.p输出读入Java应用程序

将Oracle htp.p输出读入Java应用程序,java,database,oracle,Java,Database,Oracle,由于系统的性质,我们已经构建了一个动态存储过程读取器。我剩下的唯一问题是调用proc后无法将htp.p输出读回我的应用程序 由于读者根据请求动态构建过程,我无法对特定点使用CallableStatement.registerOutParameter(),除非有不明显的使用方法 以下是来自Oracle DB的循环,它在每次传递时返回单个字符串: while cRecords%found loop htp.p(replace(replace(rec.title, chr(10), ''),

由于系统的性质,我们已经构建了一个动态存储过程读取器。我剩下的唯一问题是调用proc后无法将htp.p输出读回我的应用程序

由于读者根据请求动态构建过程,我无法对特定点使用
CallableStatement.registerOutParameter()
,除非有不明显的使用方法

以下是来自Oracle DB的循环,它在每次传递时返回单个字符串:

while cRecords%found loop
     htp.p(replace(replace(rec.title, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.city, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.venue, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.complex, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.startDate, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.endDate, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.minPrice, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.maxPrice, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.eventInfo, chr(10), ''), chr(13), '')||'~'||
           replace(replace(rec.eventImage, chr(10), ''), chr(13), '')
          );
     fetch cRecords into rec.title, rec.city, rec.venue, rec.complex, rec.startDate, rec.endDate, rec.minPrice, rec.maxPrice, rec.eventInfo, rec.eventImage;
  end loop;
这是代码的一小部分:

Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@10.0.0.2:8080:***dv", "user", "pass");
            System.out.println("conn made");

            String stmt = "{call EVENTMACHINE_JDBC_HTP(01/12/2017, 15/12/2017)}";
            System.out.println(stmt);
            cStmt = conn.prepareCall(stmt);

            cStmt.execute();
我尝试过在多个网站上搜索,但都没有结果,我也看不到任何有助于我的事业的方法


如果有任何帮助,我们将不胜感激。

为什么不使用
cStmt.executeQuery()
以便返回
ResultSet
?@M.le Rutte-cStmt.execute()方法返回一个
boolean
值-
true
如果返回
ResultSet
,则返回
false
。不幸的是,返回值为
false