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

    技术2022-05-11  13

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