0
나는 CallableStatement와 Cursors를 사용하여 Student라는 테이블에서 레코드를 가져 와서 'A'에서 시작하는 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;
/
자바 프로그램입니다 :
이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