存储过程:
CREATE OR REPLACE PROCEDURE "WL"."TEST" (
pRecCur out TestPackage.TestResultSet
)
is
begin
open pRecCur for select comno from commodity;
end;
经过测试没问题
下面是java调用代码
public class ConDBExample {
public static void main(String[] args){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection c=DriverManager.getConnection("jdbc:oracle:thin:@172.16.21.223:1521:ora64","wl","123");
CallableStatement stmt = c.prepareCall("{call test() }");
ResultSet rs= stmt.executeQuery();
}
catch(Exception e){
System.out.println(e);
}
}
}报错:
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'TEST' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored怎么解决啊
CREATE OR REPLACE PROCEDURE "WL"."TEST" (
pRecCur out TestPackage.TestResultSet
)
is
begin
open pRecCur for select comno from commodity;
end;
经过测试没问题
下面是java调用代码
public class ConDBExample {
public static void main(String[] args){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection c=DriverManager.getConnection("jdbc:oracle:thin:@172.16.21.223:1521:ora64","wl","123");
CallableStatement stmt = c.prepareCall("{call test() }");
ResultSet rs= stmt.executeQuery();
}
catch(Exception e){
System.out.println(e);
}
}
}报错:
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'TEST' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored怎么解决啊
-----------------------------------------
哈哈,只能回答:可以
CallableStatement stmt = c.prepareCall("{call test() }");
为:
CallableStatement stmt = c.prepareCall("{call test(?) }");
加这一句:
stmt .registerOutParameter(1, 你的out参数的类型,如Types.STRING,Types.INTEGER等);