0
CallableStatementとCursorsを使用して、名前が「A」から始まるstudentという名前のテーブルからpl/sqlプロシージャでレコードをフェッチするプログラムを作成しました。 SQLException:java.sql.SQLException:操作が許可されていない:通常のバインディングと名前付きのバインディングを組み合わせることはできません。 これを解決するために私を助けてください..sqlexceptionを生成するカーソルプログラムと名前付きバインディングを組み合わせることはできません
を手順は次のとおりです。
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();
}
}
}
thnnxx..for助けて働いた – Vikalp
@Vikalpそれはあなたを助けた場合答えを受け入れてupvoteしてください。 – user272735