`

oracle procedure总结

 
阅读更多
CREATE OR REPLACE PROCEDURE PROCEDURE_NAME(args1 in varchar2,...args2 out varchar2)
is
LVC_ERROR  VARCHAR2(4000);          -- 错误序号   自定义变量
BEGIN
...
EXCEPTION   
  WHEN OTHERS THEN  
    LVC_ERROR := SQLERRM;   
    ROLLBACK;   
    RAISE_APPLICATION_ERROR(2000, 'ERROR:' || LVC_ERROR);   
END PROCEDURE_NAME;

知识点 

变量赋值:

AVC_CODE := '2004';

每一句sql语句的结尾需要加上分号";"

日期比较用trunc 函数 select trunc(sysdate)-2 from dual

游标的使用:

变量声明

CUR_DRXX_LIST  OUT PKG_TYPES.REF_CURSOR     

 

赋值

 

OPEN CUR_DRXX_LIST FOR        
select ... from table

 空值

OPEN CUR_DRXX_LIST FOR     
       SELECT NULL nsrsbh,      
             NULL nsrmc,   
             NULL nsrSwjgDm   
        FROM DUAL;      
RETURN

 判断条件为空时,返回可直接用 return;

 当使用游标时, GOTO ONERROR;   

 

IF AVG_PCL_XH IS NULL THEN  
      AVC_CODE := '2004';   
      AVC_ERR_MESS := 'P_NSFW_XYDJ_MDDR_SAVE_HXCL.AVG_PCL_XH为空';   
      GOTO ONERROR;   
   END IF;  
。。。
 <<ONERROR>>      
   OPEN CUR_DRXX_LIST FOR     
       SELECT NULL nsrsbh,      
             NULL nsrmc,   
             NULL nsrSwjgDm   
        FROM DUAL;      
   RETURN;  

 

 

 

update语句可以使用普通的方法,也可以用下面这种

UPDATE NSFW_XYDJ_MDDR_LSB L   
   SET (NSRMC, NSR_SWJG_DM,DRJG) =   
    (SELECT NSRMC, NSR_SWJG_DM, 'Y' FROM CTAIS2.DJ_NSRXX C WHERE C.NSRSBH = L.nsrsbh)   
   where L.pcl_xh = AVG_PCL_XH;   

If的使用,类似VB的语法

if then
...
else
...
end if

  

 

分享到:
评论

相关推荐

    修改后的oracle游标总结,比较的全面

    修改后的oracle游标总结,比较的全面 修改后的oracle游标总结,比较的全面 修改后的oracle游标总结,比较的全面

    Oracle查询总结与优化

    procedure sp_Page(p_PageSize int, --每页记录数 p_PageNo int, --当前页码,从 1 开始 p_SqlSelect varchar2, --查询语句,含排序部分 p_OutRecordCount out int,--返回总记录数 p_OutCursor out refCursorType)...

    oracle 10g问题总结

    oracle 10g问题总结 1. 查询oracle中所有用户信息 select * from dba_users; 2. 只查询用户和密码 select username,password from dba_users; 3. 查询当前用户信息 select * from dba_ustats; 4. 查询...

    oracle实验报告

    (1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验...

    oracle存储过程及触发器总结

    介绍了oracle存储过程的实现、存储过程的调用和触发器语法及实例的基础知识

    Oracle 存储过程总结(一、基本应用)

    1、创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as –声明变量(变量名 变量类型) begin –存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace ...

    [Oracle] dbms_metadata.get_ddl 的使用方法总结

    以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下

    oracle数据转换万能通用初级脚本自动生成器

    完全本人根据15年社保工作经验,结合多年数据转换总结,本脚本适合oracle资深玩家下载调试后应用于生产,一般人玩不了的 1、下载解压。2、学习了解脚本自动比对源表目标表机制(字段名、注释名自动字符串匹配机制)...

    Oracle 常用函数

    本人总结的Oracle 常用的一些 集合函数,全是基础,大侠飘过,开始使用Oracle开发的同志参考

    Oracle call 和 exec的详解及区别

     总结: exec是sqlplus的命令,只能在sqlplus中使用。 call是sql命令,任何工具都可以使用,call必须有括号,即例没有参数  call必须有括号,即例没有参数 idle&gt; connect /as sysdba 已连接。 sys@PO10&gt; sys@PO10&gt; ...

    oracle中存储函数与存储过程的区别介绍

    在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,可是也有它们的不同之处,这段时间刚学完函数与存储过程,来给自己做一个总结: 一:存储过程:简单来说就是有名字的pl/sql块。 语法结构...

    Oracle存储过程、包、方法使用总结(推荐)

    Oracle存储过程、包、方法使用总结,具体代码如示: /** *@author:zhengwei *@date:2017-04-28 *@desc:存储过程用法总结 */ CREATE OR REPLACE PROCEDURE MYPROCEDURE(P_ID IN VARCHAR, P_STATUS OUT ...

    DBMS调优,依据执行计划SQL 优化

    2) 使用 viso 画出 oracle 的体系架构图并且对架构中的模块做简要说明,对 dbms 主 要的参数配置进行总结和说明。 3) 新建 t_user , t_role , t_user_role 表 先不要建立索引和主外键,编写一个存储过程 Create ...

    pl/sql 开发最佳实践

    这是一篇关于oracle开发入门详细文档,是我自己开发总结出来的。还包括各种开发的最佳实践,喜欢对各位想学oracle pl/sql开发的人有所帮助。

    SQL21日自学通

    总结 37 问与答 38 校练场 38 练习 39 第三天表达式条件语句与运算 40 第四天函数对数据的进一步处理 60 目标 60 汇总函数 60 COUNT61 SUM 61 AVG 63 MAX 63 MIN 64 VARIANCE65 STDDEV66 日期/时间函数66 ADD_...

    Oracle数据库中 call 和 exec的区别

    总结: exec是sqlplus的命令,只能在sqlplus中使用。 call是sql命令,任何工具都可以使用,call必须有括号,即例没有参数 call必须有括号,即例没有参数 idle&gt; connect /as sysdba 已连接。 sys@PO10&gt; sys@PO10&gt; ...

    Oracle中call和exec的区别

     总结:  exec是sqlplus的命令,只能在sqlplus中使用。  call是sql命令,任何工具都可以使用,call必须有括号,即例没有参数 call必须有括号,即例没有参数 idle&gt; connect /as sysdba 已连接。 sys@PO10&gt; ...

    sql总结.doc

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 (2)存储过程的基本写法...

    精通SQL 结构化查询语言详解

    15.3.2 使用CREATE PROCEDURE创建存储过程 15.3.3 使用EXECUTE语句调用存储过程  15.3.4 使用CREATE FUNCTION创建函数  15.3.5 使用Enterprise Manager创建存储过程和函数 15.3.6 修改和删除存储过程和函数 ...

    精通SQL--结构化查询语言详解

    15.3.2 使用create procedure创建存储过程 309 15.3.3 使用execute语句调用存储过程 310 15.3.4 使用create function创建函数 312 15.3.5 使用enterprise manager创建存储过程和函数 315 15.3.6 修改和删除存储...

Global site tag (gtag.js) - Google Analytics