首页 > 开发 > 综合 > 正文

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

2024-07-21 02:08:45
字体:
来源:转载
供稿:网友
,欢迎访问网页设计爱好者web开发。
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};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表