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

类别:数据库 点击:0 评论:0 推荐:

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};

本文地址:http://com.8s8s.com/it/it21025.htm