zoukankan      html  css  js  c++  java
  • 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; 

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

     

  • 相关阅读:
    leetcode66 plusOne
    park/unpark 阻塞与唤醒线程
    leetcode55 jumpGame贪心算法
    ACID特性与事务的隔离级别
    PCB ODB++(Gerber)图形绘制实现方法
    PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20
    PCB SQL SERVER 位运算应用实例
    PCB SQL SERVER 枚举分割函数(枚举值分解函数)
    PCB SQL SERVER 正则应用实例
    PCB Genesis 外形加内角孔实现方法
  • 原文地址:https://www.cnblogs.com/Jomini/p/9251222.html
Copyright © 2011-2022 走看看