oracle存储过程---创建存储过程语句

一、创建存储过程语句

      语法:  CREATE OR REPLACE PROCEDURE testname( argument1 TYPE1, ....  ) AS BEGIN ...... END   testname

      例子:

CREATE OR REPLACE PROCEDURE test_name(
arg1 VARCHAR2,arg2 number,arg3 number)
AS
BEGIN
  insert into test_for_insert(
              STACID,  LOANNO,  SYSTID,  PARA1, PARA2 
            )values(
                       1,       arg1,       'wld',     arg2,    arg3
            );
        
  dbms_output.put_line('work!');
END test_name;

     右键‘测试’,输入参数

 

二、存储过程使用游标

       游标就像循环里面的指针

       语法:定义 :  CURSOR  point  IS SELECT number FROM test_table;  

                  使用:FOR  test_point  IN  point LOOP

                                  .................................

                             END LOOP;

create or replace procedure test1 (sys in varchar2)is
  v_sys  test_table.SYSTID%TYPE;
  v_arg number(10,2);
  CURSOR table_cursor IS
  SELECT SYSTID, NUMBER from test_table;  
begin    

  for test_cursor in table_cursor LOOP 
    if sys = 'TEST' then
     dbms_output.put_line(' work ');
   end if;
  END LOOP;
end test1; 

 

三、给变量赋值

         语法  :   SELECT  a.number, a INTO varible1 FROM test_table a;

         例子 : 

create or replace procedure test_pro(sys in varchar2) is 

  v_sys  test_table.SYSTID%TYPE;
  v_varible1 number(10,2);
  v_varible2 number(10,2);

  CURSOR test_cursor IS
  SELECT SYSTID, NUMBER 
  from test_table;  

BEGIN

 for v_cursor in test_cursor LOOP
   if sys = 'wld' then
        select t.SYSTID, nvl(sum(t.var1+t.var2),0) 
        into v_sys, v_varible1
        from test_table t where  t.NUMBER = v_cursor.NUMBER;
       dbms_output.put_line('SYS : ' || v_sys || ' v_varible1  : ' || v_varible1 );
   end if;
 END LOOP;
END test_pro;

 

四、 插入表格

        语法: INSERT INTO table1 ( arg1, arg2 .....) SELECT varible1, varible2 ..... FROM table2;

        例子:

   

create or replace procedure test3 (sys in varchar2)is
  v_sys  test_table.SYSTID%TYPE;
  v_arg number(10,2);

begin    

    INSERT INTO table1
   (
    arg1, arg2, ....
    )
    select 
    varible1, varible2,...     
    from table2;
    
end test3; 

------------- ------------- 谢谢大佬打赏 ------------- -----------

 

 

转载于:https://www.cnblogs.com/Jomini/p/9251222.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值