呼叫功能 PL/SQL, 返回类型 Oracle 的 Java
我有一个功能 PL/SQL 如下,返回类型 Oracle /PROCESSEXCLEFILEARGS/
我必须从那里打电话给这个功能 Java, 和我的方法 Java 如下
OracleObject.ProcessExcelFileArgs 实施 SQLData, 和方法 readSQl/../ 和 writeSQL/../ 正确实现以读写类型的类型。
但是当我发布此方法时 java, 我得到了 SQLException 有消息 "无效的列类型: 1111".
如果我的方法有任何问题,任何人都可以告诉我,或者是否有其他方法可以获得返回的类型 oracle 作为对象 java.
EDIT:
请不要这么想 TYPEGRAPHDATA - 这是另一种自定义类型 Oracle 在架构水平
谢
FUNCTION PROCESS_FILE_INTERNAL
/
i_Filename VARCHAR2,
i_EventType NUMBER
/
RETURN PROCESSEXCELFILEARGS
我必须从那里打电话给这个功能 Java, 和我的方法 Java 如下
OracleCallableStatement cstmt = null;
try{
OracleDriver ora = new OracleDriver//;
DriverManager.registerDriver/ora/;
Connection connection = ora.defaultConnection//;
String call = "{ ? = call NEUTRINO_META.PKG_EXCEL.PROCESS_FILE_INTERNAL/?, ?/ }";
cstmt = /OracleCallableStatement/connection.prepareCall/call/;
cstmt.setQueryTimeout/1800/;
cstmt.registerOutParameter/1, OracleTypes.OTHER, "NEUTRINO_META.PROCESSEXCELFILEARGS"/;
cstmt.setString/2, filename/;
cstmt.setDouble/3, eventType/;
cstmt.execute//;
OracleObjects.ProcessExcelFileArgsobj = /OracleObjects.ProcessExcelFileArgs/cstmt.getObject/1/;
connection.commit//;
}
catch /SQLException e/{
WriteEventToDb/e.getMessage///;
}
finally{
if /cstmt != null/{
cstmt.close//;
}
}
OracleObject.ProcessExcelFileArgs 实施 SQLData, 和方法 readSQl/../ 和 writeSQL/../ 正确实现以读写类型的类型。
但是当我发布此方法时 java, 我得到了 SQLException 有消息 "无效的列类型: 1111".
如果我的方法有任何问题,任何人都可以告诉我,或者是否有其他方法可以获得返回的类型 oracle 作为对象 java.
EDIT:
create or replace
TYPE PROCESSEXCELFILEARGS FORCE AS OBJECT
/
FullFilePath VARCHAR2/700/,
Filename VARCHAR2/200/,
Graph TYPEGRAPHDATA
/
请不要这么想 TYPEGRAPHDATA - 这是另一种自定义类型 Oracle 在架构水平
谢
没有找到相关结果
已邀请:
4 个回复
董宝中
赞同来自:
在 Oracle G。:
在 Java 年:
出口:
小姐请别说爱
赞同来自:
由于我的班级的事实,它的工作 ProcessExcelFileArgs 意识到 java.sql.SQLData 并添加了K. Oracletype 班级匹配 java 使用地图类型的连接。
快网
赞同来自:
RECORD
:
在 oracle 您的功能返回
PIPELINE
:
在 java 可以使用
https://oracle-base.com/articl ... tions
, 然后从中提取值 ResultSet
江南孤鹜
赞同来自: