In out参数:
create or replace procedure test(s in varchar2,p out varchar2) is
begin
select password into p from student where username like s||'%';
delete from student where username like s||'%';
end test;
Connection conn=null;
CallableStatement cstmt=null;
conn=Conn.getConn();
cstmt=conn.prepareCall("{call test(?,?)}");
cstmt.setString(1,"aaaa");
cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);
cstmt.execute();
String t=cstmt.getString(2);
System.out.println(t);
在oracle存储过程中返回游标
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
/
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out
TESTPACKAGE.Test_CURSOR) IS
BEGIN
OPEN p_CURSOR FOR SELECT * FROM student;
END TESTC;
/
或CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
procedure TESTC(T_CURSOR out test_CURSOR);
end TESTPACKAGE;
/
CREATE OR REPLACE PACKAGE BODY TESTPACKAGE AS
procedure TESTC(T_CURSOR out test_CURSOR) as
begin
open T_CURSOR for select * from student;
end TESTC;
end TESTPACKAGE;
/
Connection conn=null;
conn=Conn.getConn();
CallableStatement cstmt=null;
ResultSet rs;
cstmt = conn.prepareCall("{ call testc(?) }");
cstmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
评论1