每个记录都是一次成长。
--=====================================================================================
--◇◆存储过程---示例:
--◇◆select存储过程-
create or replace procedure proc_select(test_cursor out sys_refcursor)
as
begin
open test_cursor for select * from [用户].[表名];
dbms_output.put_line('select success!!!');
end proc_select;
----------------------------------------------------------------------------------
--调用
declare
str sys_refcursor;
rowinfo [用户].[表名]%rowtype;
begin
proc_select(str);
loop
fetch str into rowinfo;
exit when str%notfound;
dbms_output.put_line(rowinfo.[字段]);
end loop;
end;
◇◆◇◆◇◆◇◆---------------------------------包--------示例--------------------------------------◇◆◇◆◇◆◇◆
--创建包
create or replace package cglin_package
as
procedure show99;--声明包里的过程
--其他过程
end cglin_package;
--实现包
create or replace package body cglin_package
as
procedure show99--创建过程
is
begin
for i in 1..9 loop
for j in 1..i loop
dbms_output.put(i*j||' ');
end loop;
dbms_output.new_line();
end loop;
end;
--下一个过程
end cglin_package;
--调用
begin
cglin_package.show99;
end;
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
◇◆◇◆◇◆◇◆-----------------------------------------◇◆◇◆◇◆◇◆----------------------------------------------◇◆◇◆◇◆◇◆
create or replace procedure proc_delete(strid in int,delresult out varchar2)
as
begin
delete from table1 where tid = strid;
delresult := SQL%rowcount;
commit;
end proc_delete;
◇◆◇◆◇◆◇◆---------------------------------------------------------------------------------------◇◆◇◆◇◆◇◆
create or replace procedure proc_delete(strid in 表名.字段%type,delresult out varchar2)
as
begin
delete from 表名 where 字段 = strid;
delresult := SQL%rowcount;
commit;
end proc_delete;
◇◆◇◆◇◆◇◆------------------------------【plsql调用】--------------------------------◇◆◇◆◇◆◇◆
declare
rstr varchar2(20);
begin
proc_delete(参数,rstr);
dbms_output.put_line('results:'||rstr);
end;
◇◆◇◆◇◆◇◆------------------------------【java 调用】--------------------------------◇◆◇◆◇◆◇◆
public class Testjdbc {
public void procDelete(int id){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","test1_user","user123");
CallableStatement callpstmt = conn.prepareCall("{call proc_delete(?,?)}");
callpstmt.setInt(1, id);
callpstmt.registerOutParameter(2, Types.VARCHAR);
callpstmt.execute();
String result = callpstmt.getString(2);
System.out.println(result);
callpstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Testjdbc().procDelete(30);
}
}
◇◆◇◆◇◆◇◆-----------------------------------------◇◆◇◆◇◆◇◆----------------------------------------------◇◆◇◆◇◆◇◆