数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Listen Software解决方案 “How To” 系列2:存储过程

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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



相关文章

相关软件