1.基本结构 
CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
  将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
  记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
  例子: 
  BEGIN
  SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
      xxxx;
  END;
  ...

3.IF 判断
  IF V_TEST=1 THEN
    BEGIN 
       do something
    END;
  END IF;

4.while 循环
  WHILE V_TEST=1 LOOP
  BEGIN
 XXXX
  END;
  END LOOP;

5.变量赋值
  V_TEST := 123;

6.用for in 使用cursor

  ...
  IS
  CURSOR cur IS SELECT * FROM xxx;
  BEGIN
 FOR cur_result in cur LOOP
  BEGIN
   V_SUM :=cur_result.列名1+cur_result.列名2
  END;
 END LOOP;
  END;

7.带参数的cursor
  CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
  OPEN C_USER(变量值);
  LOOP
 FETCH C_USER INTO V_NAME;
 EXIT FETCH C_USER%NOTFOUND;
    do something
  END LOOP;
  CLOSE C_USER;

8.异常中的错误代码和错误消息

Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息。
   OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检测到。
    在一个内在的异常中,SQLCODE返回Oracle错误的序号,而SQLERRM返回的是相应的错误消息,错误消息首先显示的是错误代码。SQLCODE返回的是负数,除非Oracle的错误为“ORA-01403:NO DATA FOUND”(译:ORA-01403:未找到数据),当Oracle错误为“ORA-01403:NO DATA FOUND”时,其对应的SQLCODE为+100。对于用户自定义的异常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception。
    一个Oracle的错误消息最多只能包含512个字节的错误代码。如果没有异常被触发,则SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。

...

EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
      c_sqlcode := SQLCODE;
      c_sqlerrm := SUBSTRB(SQLERRM, 1, 512);
      o_sts        := ‘-1’;
      c_error      := c_process_sts_error;
  END PROC_SEND_RECEIVE_ERR_INS;

oracle存储过程的基本语法相关推荐

  1. [转]oracle 存储过程的基本语法 及注意事项

    oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) ...

  2. oracle 存储过程的基本语法 及注意事项

    oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) ...

  3. oracle存储过程学习经典[语法+实例+调用]

    Oracle存储过程基础知识 商业规则和业务逻辑可以通过程序存储在Oracle中,这个程序就是存储过程. 存储过程是SQL, PL/SQL, Java 语句的组合,它使你能将执行商业规则的代码从你的应 ...

  4. oracle存储过程(基础语法)

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

  5. oracle 存储过程的基本语法

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INTEGER := ...

  6. oracle存储过程的常用语法

    记录一下,主要方便自己以后查找: create or replace procedure sp_test ( aa in varchar, bb in number default 0 ) is v_ ...

  7. oracle 存储过程语法

    oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) ...

  8. Oracle存储过程语法学习

    Oracle存储过程: 1.1 第一个存储过程 --创建存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out va ...

  9. Oracle 存储过程语法及使用

    写在前面 本来这种东西作为一个写Java的我以为应该是基本用不上的,以前基本就是听过而已的一个概念,但是实际接到的一个需求就是需要数据库去定期执行存储过程,本着打好基础的目的,还是稍微学习了一下,本篇 ...

最新文章

  1. Linux 内核启动流程
  2. 哈尔滨理工大学ACM集训第二周总结
  3. 概率统计笔记:高斯威沙特分布
  4. 2008.02.05
  5. c语言如何打印unicode字符,如何在C ++中打印Unicode字符?
  6. 大数据之-Hadoop完全分布式_集群的启动和停止方式总结---大数据之hadoop工作笔记0039
  7. HTTP Status 500 - Could not write content: Object is null 解决方法
  8. C++自己实现一个String类
  9. iPhone UI 元素大小
  10. android 基础布局
  11. 华为NP课程笔记9-BGP 3
  12. 光纤跳线接口_一篇文章读懂光纤接头、尾纤、耦合器、终端盒的作用与接法!...
  13. Win10无线投屏功能安装失败解决办法
  14. 服务器系统https打不开网页,记录一次解决网站突然无法打开处理HTTP被封的问题...
  15. AT指令判断NBIoT网络质量
  16. app第三方支付测试点
  17. 华硕ac68u最佳设置_华硕AC68U路由器APP远程控制设置教程
  18. provided port 35589 is not reachable
  19. 深度强化学习发展现状及展望:万字总结解读83篇文献
  20. AlexNet 参数计算

热门文章

  1. 城市WiFi好看还应该好用
  2. CDH的几个包的下载地址
  3. Struts2+Spring3.1+Hibernate3.3的整个项目
  4. 微软BI 之SSAS 系列 - 多维数据集维度用法之二 事实维度(退化维度 Degenerate Dimension)...
  5. 海量大数据处理最新面试题-1
  6. 举例分析Linux动态库和静态库
  7. 在唯一密钥属性“name”设置为“Application”时,无法添加类型为“add”的重复集合项...
  8. 日本語のマナーを学びましょう
  9. Openstack组件部署 — Nova_安装和配置Controller Node
  10. 关于“#ifdef __cplusplus” 和 extern C 的问题