Oracle存储过程基本语法.docVIP

  • 1
  • 0
  • 约1.54万字
  • 约 50页
  • 2021-09-26 发布于山东
  • 举报
Oracle存储过程基本语法 Oracle存储过程基本语法 PAGE / NUMPAGES Oracle存储过程基本语法 Oracle 存储过程基本语法 存储过程 CREATE OR REPLACE PROCEDURE存储过程名 IS BEGIN NULL; END; 行 1: CREATE OR REPLACE PROCEDURE是一个 SQL语句通知 Oracl e 数据库去创建一个叫做 skeleton 存储过程 , 如果存在就覆盖它 ; 行 2: IS 关键词表明后面将跟随一个 PL/SQL体。 行 3: BEGIN关键词表明 PL/SQL体的开始。 行 4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为 PL /SQL 体中至少需要有一句 ; 行 5: END关键词表明 PL/SQL体的结束 存储过程创建语法: create or replace procedure 存储过程名( param1 in t ype,param2 out type ) as 变量 1 类型(值范围) ; --vs_msg VARCHAR2(4000); 变量 2 类型(值范围) ; Begin Select count(*) into 变量 1 from 表 A where 列名 =param1; If ( 判断条件 ) then Select 列名 into 变量 2 from 表 A where 列名 =param1; Dbms_output。Put_line( ‘打印信息’ ); Elsif ( 判断条件 ) then Dbms_output。Put_line( ‘打印信息’ ); Else Raise 异常名( NO_DATA_FOUND); End if; Exception When others then Rollback; End; 注意事项: 1, 存储过程参数不带取值范围, in 表示传入, out 表示输出 类型可以使用任意 Oracle 中的合法类型。 2, 变量带取值范围,后面接分号 3, 在判断语句前最好先用 count (*)函数判断是否存在该条操 作记录 4, 用 select 。。。 into 。。。给变量赋值 5, 在代码中抛异常用 raise+ 异常名 CREATE OR REPLACE PROCEDURE存储过程名 ( 定义参数 is_ym IN CHAR(6) , the_count OUT NUMBER, ) AS 定义变量 vs_msg VARCHAR2(4000); -- 错误信息变量 vs_ym_beg CHAR(6); -- 起始月份 vs_ym_end CHAR(6); -- 终止月份 vs_ym_sn_beg CHAR(6); -- 同期起始月份 vs_ym_sn_end CHAR(6); -- 同期终止月份 定义游标 ( 简单的说就是一个可以遍历的结果集 ) CURSORcur_1 IS SELECT 。。。 FROM 。。。 WHERE 。。。 GROUP BY 。。。 ; BEGIN -- 用输入参数给变量赋初值,用到了 Oralce 的 SUBSTR TO_CHAR A DD_MONTHS TO_DATE 等很常用的函数。 vs_ym_beg := SUBSTR(is_ym,1,6); vs_ym_end := SUBSTR(is_ym,7,6); vs_ym_sn_beg := TO_CHAR(ADD_MONTHS(TO_DATE(vs_ym_beg,yyy ymm), -12),yyyymm); vs_ym_sn_end := TO_CHAR(ADD_MONTHS(TO_DATE(vs_ym_end,yyy ymm), -12),yyyymm); 先删除表中特定条件的数据。 DELETE FROM 表名 WHEREym = is_ym; 然后用内置的 DBMS_OUTPUT对象的 put_line 方法打印出影响的记录行数,其中用到一个系统变量 SQL%rowcount (del 上月记录 =||SQL%rowcount|| 条); INSERT INTO表名 (area_code,ym,CMCODE,rmb_amt,usd_amt) SELECT area_code,is_ym,CMCODE,SUM(rmb_amt)/10000,SUM(usd_a mt)/10000 FROM BGD_AREA_CM_M_BASE_T WHERE ym = vs_ym_beg AND ym = vs_ym_end GROUP BY area_code,CMCODE; (ins 当月记录 =||SQL%rowcount|| 条); 遍历游标处理后

文档评论(0)

1亿VIP精品文档

相关文档