Listen Software解决方案 “How To” 系列2:存储过程

Listen Software解决方案 “How To” 系列2:存储过程

** 参照: ** ** **

参照定义和使用游标

参照定义和使用函数

** 存储过程 ** ** **

** **CREATE OR REPLACE PROCEDURE {procedure name} 


( {argument} IN {datatype} ) IS v_variable {datatype}; 


--变量类型   


        VARCHAR(X);


        VARCHAR2(X);


        VARCHAR2;


        CHAR(X);


        NUMBER(P,S);   


--P-数字的位数


        --S-数字的精度   


        NUMBER(X);


        NUMBER;


        LONG;          


        --容纳32,760字节数据


        DOUBLE PRECISION;


        FLOAT;


        INT;


        REAL;


        DATE;


        RAW(X) 


        --容纳32,760字节数据


        LONG RAW; 


        --容纳32,760字节数据


        --注意数据库类型为LONG RAW 


        --容纳20亿字节数据


        RECORD;


        TABLE;


        VARRAY;


        LOB;


        CLOB;


         v_variable_c1  VARCHAR2(20);            


        --创建20个字符长的变量


         v_variable_c2  CHAR(10);               


        --创建固定长度为10个字符的变量 


        - 最大长度255 


        v_variable_c3  VARCHAR2;               


        --变量长度不能超过2000个字符


        v_variable_n1  table_name.field_name%TYPE; 


        --定义参照方案中表字段类型的变量类型    


        v_variable_n2  NUMBER;


        v_variable_n3  NUMBER := 3;


        v_variable_n4  NUMBER(10);


        v_variable_n5  NUMBER(10,2);


        v_variable_n6  LONG;


        v_variable_n7  FLOAT;


        v_variable_n8  REAL;


         TYPE t_my_record IS RECORD


        (


        v_variable1        VARCHAR2(8)


        ,v_variable2 NUMBER(10)


        ,v_variable3 DATE


        );


         my_record t_my_record;


         TYPE t_my_table is TABLE OF VARCHAR2(10)   


        --与vb中的数据结构相似


         INDEX BY BINARY_INTEGER;


         my_table t_my_table;


 BEGIN 


        --这儿插入代码


         v_variable_c1 := 'Hello World';


        v_variable_n2 :=10;


         --条件逻辑


         IF v_variable_n2 = 1 THEN


                v_variable_c2 := 'Exact Match';


        ELSIF v_variable_n3 > 2 THEN


                v_variable_c2 := 'Greater Than Match';


        ELSE


                v_variable_c3 := 'None of the Above';


        END IF;


         my_record.v_variable1:='ABC';


        my_record.v_variable2:=3;


        my_record.v_variable3:=TO_DATE('11-JAN-1999','DD-MON-YYYY');


         my_table(1)='A';


         my_table(2)='B';


        /* v_variable_n2的值为10,因此第一个条件为false.


           v_variable_n3初始为3,因此条件为true, 


           v_variable_c2的值就为'Greater Than Match'


           循环 */


         v_variable_n2:=0;


        LOOP


                v_variable_n2:=v_variable_n2+1;


                EXIT WHEN v_variable_n2 > 10;


        END LOOP;


       v_variable_n2:=0;


      WHILE v_variable_n2<10 LOOP


                v_variable_n2:=v_variable_n2+1;


        END LOOP;


         FOR v_variable_n2 in 1..10 LOOP


         END LOOP;


 END {procedure name};
Published At
Categories with 数据库类
comments powered by Disqus