【发布时间】:2016-07-18 15:13:41
【问题描述】:
我创建了一个程序,使用 CallableStatement 和 Cursors 从名为 Student 的表中获取记录,该表的名称从 'A' 开始,带有 pl/sql 过程。程序给出 SQLException: java.sql.SQLException: operation not allowed : 序数绑定和命名绑定不能合并! 请帮我解决这个问题..
程序是:
create or replace procedure get_StudDetails(mycur out sys_refcursor,cond in varchar)
as
begin
open mycur for
select * from Student where stname like cond;
end;
/
java程序是:
import java.sql.*;
import oracle.jdbc.driver.*;
class CursorTest
{
public static void main(String s[])
{
try
{
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","rt","pwdd");
CallableStatement cs=con.prepareCall("{call get_StudDetails(?,?)}");
cs.getString(2+"A%");
cs.registerOutParameter(1,OracleTypes.CURSOR);
cs.execute();
System.out.println("procedure invoked");
ResultSet rs=(ResultSet)cs.getObject(1);
while(rs.next())
{
System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
【问题讨论】:
标签: plsql cursor callable-statement