`

Oracle存储过程基本使用

 
阅读更多
转载
-创建存储过程
CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p
(
--参数IN表示输入参数,OUT表示输入参数,类型可以使用任意Oracle中的合法类型。
 is_ym  IN CHAR
)
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);     --同期终止月份
--定义游标(简单的说就是一个可以遍历的结果集)
 CURSOR cur_1 IS
 SELECT area_code,CMCODE,SUM(rmb_amt)/10000 rmb_amt_sn,SUM(usd_amt)/10000 usd_amt_sn
 FROM BGD_AREA_CM_M_BASE_T
  WHERE ym >= vs_ym_sn_beg
  AND ym <= vs_ym_sn_end
 GROUP BY area_code,CMCODE;

BEGIN
 --用输入参数给变量赋初值,用到了Oralce的SUBSTR TO_CHAR ADD_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,'yyyymm'), -12),'yyyymm');
 vs_ym_sn_end := TO_CHAR(ADD_MONTHS(TO_DATE(vs_ym_end,'yyyymm'), -12),'yyyymm');
 --先删除表中特定条件的数据。
 DELETE FROM xxxxxxxxxxx_T WHERE ym = is_ym;
  --然后用内置的DBMS_OUTPUT对象的put_line方法打印出影响的记录行数,其中用到一个系统变量SQL%rowcount
 DBMS_OUTPUT.put_line('del上月记录='||SQL%rowcount||'条');
 
 INSERT INTO xxxxxxxxxxx_T(area_code,ym,CMCODE,rmb_amt,usd_amt)
 SELECT area_code,is_ym,CMCODE,SUM(rmb_amt)/10000,SUM(usd_amt)/10000
 FROM BGD_AREA_CM_M_BASE_T
  WHERE ym >= vs_ym_beg
  AND ym <= vs_ym_end
 GROUP BY area_code,CMCODE;
 
 DBMS_OUTPUT.put_line('ins当月记录='||SQL%rowcount||'条');
 --遍历游标处理后更新到表。遍历游标有几种方法,用for语句是其中比较直观的一种。
 FOR rec IN cur_1 LOOP
  UPDATE xxxxxxxxxxx_T
  SET rmb_amt_sn = rec.rmb_amt_sn,usd_amt_sn = rec.usd_amt_sn
   WHERE area_code = rec.area_code
   AND CMCODE = rec.CMCODE
   AND ym = is_ym;
 END LOOP;
 
 COMMIT;
 --错误处理部分。OTHERS表示除了声明外的任意错误。SQLERRM是系统内置变量保存了当前错误的详细信息。
EXCEPTION
   WHEN OTHERS THEN
      vs_msg := 'ERROR IN xxxxxxxxxxx_p('||is_ym||'):'||SUBSTR(SQLERRM,1,500);
   ROLLBACK;
   --把当前错误记录进日志表。
   INSERT INTO LOG_INFO(proc_name,error_info,op_date)
   VALUES('xxxxxxxxxxx_p',vs_msg,SYSDATE);
   COMMIT;
   RETURN;
END;

 

分享到:
评论

相关推荐

    oracle存储过程学习经典入门

    Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储...

    Oracle存储过程最基本的开发规范

    ### Oracle存储过程开发基本规范详解 #### 一、概述 Oracle存储过程作为一种强大的数据库编程工具,在企业级应用中被广泛采用。为了确保存储过程的质量、可读性和可维护性,制定一套合理的编码规范至关重要。本文将...

    Oracle存储过程基本语法

    Oracle 存储过程基本语法 Oracle 存储过程是一种可以在 Oracle 数据库中创建和执行的程序单元,它可以完成多种操作,如数据处理、数据报表、数据统计等。下面是 Oracle 存储过程的基本语法。 创建存储过程 CREATE...

    关于oracle存储过程的基本语法

    #### 二、Oracle存储过程的基本结构 存储过程的基本结构包括创建语句、参数声明、局部变量声明以及过程体等部分。具体格式如下: ```sql CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN 类型, 参数2 OUT ...

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    此外,对于Oracle存储过程,理解其基本概念和使用方法也是必要的。存储过程是预编译的SQL语句集合,可以封装复杂的业务逻辑,提高数据处理效率,并通过参数传递数据。在与帆软报表集成时,正确理解和调用存储过程能...

    oracle 存储过程 函数 dblink

    在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...

    oracle存储过程常用技巧

    Oracle存储过程常用技巧 Oracle存储过程是一种强大的数据库对象,它可以帮助开发者简化复杂的业务逻辑,并提高数据库的安全性和性能。在 Oracle 中,存储过程是一种特殊的 PL/SQL 程序,它可以接受输入参数,执行...

    ORACLE存储过程最全教程

    Oracle存储过程是数据库管理系统Oracle中的一个关键特性,它允许开发者编写一组预编译的SQL和PL/SQL语句,以实现特定的业务逻辑或数据库操作。这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面...

    Oracle存储过程详细使用手册

    "Oracle 存储过程详细使用手册" Oracle 存储过程是数据库中的一种重要组件,它可以实现复杂的业务逻辑和数据处理。本手册将详细介绍 Oracle 存储过程的使用方法和相关知识点。 1. 创建存储过程 创建存储过程的...

    Oracle存储过程的基本语法

    Oracle存储过程是数据库管理系统...以上就是Oracle存储过程的基本语法,包括如何定义、使用参数、控制流结构以及与游标交互的方法。掌握这些基础,开发者可以构建复杂的应用逻辑,并在数据库层面上高效地处理数据。

    oracle 存储过程的基本语法

    #### 二、Oracle存储过程基本结构 存储过程的基本结构包括创建声明、参数定义、局部变量声明以及控制结构等部分。 ##### 创建存储过程 ```sql CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN 数据类型, ...

    Oracle存储过程基本语法及示例

    ### Oracle存储过程基本语法及示例 在Oracle数据库中,存储过程是一种强大的工具,用于封装一组SQL语句或PL/SQL代码块,以便在数据库服务器上执行特定的任务。存储过程可以提高应用程序性能、确保数据完整性并简化...

    Oracle存储过程开发的要点

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...

    oracle 存储过程批量提交

    #### 一、Oracle存储过程的基本概念 存储过程是由一系列SQL语句和过程化SQL语句(如循环、条件判断等)组成的单元,它们被编译并保存在数据库中。当存储过程被调用时,整个过程将作为一个整体被执行,这可以极大地...

    oracle存储过程学习经典

    #### Oracle存储过程基本语法 存储过程在Oracle中的创建遵循以下基本结构: ```sql CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN 类型, 参数2 OUT 类型, 参数3 INOUT 类型 ) AS 变量声明区; BEGIN ...

    oracle存储过程超详细使用手册

    ### Oracle存储过程超详细使用手册 #### 一、创建存储过程 在Oracle中,存储过程是一种数据库对象,它由一组SQL语句和可选的PL/SQL代码组成,用于完成特定的功能。创建存储过程的基本语法如下: ```sql CREATE OR...

    ORACLE存储过程学习源码

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行复杂的业务逻辑和数据操作。这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,...

    oracle存储过程语法

    Oracle存储过程语法 Oracle存储过程语法是指在Oracle数据库中创建和管理存储过程的语法规则。存储过程是一种可以重复使用的数据库对象,旨在将多个SQL语句组合成一个单元,以便实现复杂的业务逻辑。 创建存储过程...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    **一、Oracle存储过程** 存储过程是一组预编译的SQL语句和PL/SQL代码,存储在数据库服务器上,可以按需调用。存储过程的优点包括提高性能、减少网络流量、增强安全性以及实现模块化编程。 1. **创建存储过程**:...

    oracle存储过程实例

    创建Oracle存储过程的基本语法如下: ```sql CREATE OR REPLACE PROCEDURE 过程名 AS 声明语句段; BEGIN 执行语句段; EXCEPTION 异常处理语句段; END; ``` `AS`关键字代替了无参过程的`DECLARE`。在创建过程中,...

Global site tag (gtag.js) - Google Analytics