1. create or replace procedure procedure_name --存储过程名字
  2. (
  3. --进行输入/输出的量 _name in out _类型
  4. --e.g.
  5. username in varchar2,                                  --varchar2类型无需标明长度
  6. id out number(38)
  7. )
  8. is/as
  9. --基本认为isas是一致的,但是略有区别,在这个部分进行变量和常量的声明       //类似PL/SQL语句块中的declare部分
  10.  
  11. --变量/常量_name constant 1.变量/常量_类型;
  12. -- 2.table_name.col_name%type   //这个变量沿用这个表中的这个列的类型
  13. -- 3._name                      //某个变量需要从外部传入,&**_name作为一个占位符
  14. -- 4.自定义类型 //使用对象的概念理解
  15. -- 5.table_name%rowtype
  16.  
  17. --e.g.
  18. --
  19. i constant number:=5;
  20. username varchar2(40);
  21. --
  22. username tb_user.username%type;
  23. --
  24. username varchar2:=&name;
  25. --
  26. type type_name is record
  27. (
  28. id number(38);
  29. username varchar2(40);
  30. );
  31. type_obj type_name; --(将某行的部分需要的值放进去)使用的时候:select tb.id,tb.username into type_obj from tb_user tb
  32. --
  33. users tb_user%rowtype; --(将某行的值放进去)使用的时候:select * into users from tb_user where id='1';
  34.  
  35. --声明游标,获取查询语句的结果集(多行多列);   //游标申明中不要使用into子句 cursor cur_name is select col_name,col_name,, from table_name;
  36. --e.g.
  37. cursor temCur is select * from tb_user;
  38.  
  39. begin
  40. --放置sql语句和pl/sql语句块
  41.  
  42. --赋值
  43. a:=b;
  44.  
  45. --输出语句
  46. dbms_output.put_line(''||''||''); --如果需要显示结果,set serveroutput on
  47.  
  48. --sql语句
  49. --增
  50. insert into table_name(col_name,col_name,,)
  51. values(val_val,val_val,,);
  52.  
  53. --改
  54. update table_name set col_name = val_val;
  55.  
  56. --删
  57. delete from table_name ……
  58.  
  59. --游标
  60. --1.显式游标
  61. --2.隐式游标 select * into emp from table_name ……
  62.  
  63. --打开游标
  64. --open cur_name;
  65. --将游标中的值赋值到某值中
  66. --fetch cur_name into get_name,get_name,,;
  67. --关闭游标
  68. --close cur_name;
  69.  
  70. --游标状态信息
  71. --%isoipen //boolean
  72. --%notfound //
  73. --%found //
  74. --%rowcount //目前为止,总行数
  75.  
  76. select col_name into temp_name from table_name --将表中的值(一行一列的值)取出放到这个“临时变量中”
  77.  
  78. --循环
  79. --1.
  80. loop
  81. ***
  82. exit when ***
  83. end loop;
  84.  
  85. --2.
  86. while ***
  87. loop
  88. ***
  89. end loop;
  90.  
  91. --3.
  92. for index in[reverse] ***
  93. loop
  94. ***
  95. end loop;
  96.  
  97. --判断
  98. if *** then ***
  99. elsif *** then ***
  100. else ***
  101. end if;
  102.  
  103. --提交事务
  104. commit;
  105.  
  106. exception
  107. --//异常处理
  108. when too_many_rows then
  109. ***
  110. when no_data_found then
  111. ***
  112. *when others then
  113. ***
  114. --rollback;
  115. --commit
  116. end procedure_name;
  117.  
  118. --调用存储过程
  119. exec pro_name();
  120.  
  121. /*
  122. --使用循环获取游标数据
  123. declare
  124. -- 定义emp类型
  125. emp employees%rowtype;
  126. -- 定义一个游标:拿到所有员工
  127. cursor my_corsor is select * from employees;
  128. begin
  129. -- 打开游标
  130. open my_corsor;
  131. --循环开始打印游标
  132. loop
  133. -- 移动光标并获取相应的数据
  134. fetch my_corsor into emp;
  135. -- 如果没有相应数据则离开
  136. exit when my_corsor%notfound;
  137. -- 没有离开代表有数据,则可以打印展示出来
  138. dbms_output.put_line(emp.first_name||' '|| emp.salary);
  139. end loop;
  140. --关闭游标
  141. close my_corsor;
  142. end;
  143.  
  144. --使用游标的for循环
  145. PL/SQL语言提供了游标的for循环语句。
  146. 自动的执行游标的open,fetch和close。
  147. 当进入循环后,游标for循环语句会自动的打开游标,并提取第一行数据,
  148. 当程序处理完当前数据后,自动提取下一行数据。
  149. 当结果集中的内容提取完毕后,自动关闭游标。
  150.  
  151. 格式:
  152. FOR variables IN cursor_name(value,value...) LOOP
  153. --处理语句
  154. END LOOP;
  155.  
  156. declare
  157.  
  158. --定义一个游标:拿到所有员工
  159. cursor my_corsor is select * from employees;
  160. begin
  161. --循环开始打印游标
  162. for emp in my_corsor loop
  163. -- 没有离开代表有数据,则可以打印展示出来
  164. dbms_output.put_line(emp.first_name||' '|| emp.salary);
  165. end loop;
  166. end;
  167.  
  168. */

Oracle存储过程_语法的更多相关文章

  1. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  2. Oracle存储过程基本语法 存储过程

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  3. Oracle存储过程基本语法

    一.形式 1 CREATE OR REPLACE PROCEDURE 存储过程名  //是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 2 IS   ...

  4. (转)Oracle存储过程基本语法

    本文转载自:http://www.cnblogs.com/hero4china/articles/base_rule_oracle_procedure.html 存储过程 1  CREATE OR R ...

  5. Oracle 存储过程_(收集)

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

  6. Oracle存储过程常用语法及其使用

    1.什么是存储过程 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行.它可以接受参数.输出参数,并可以返回单个或多个 ...

  7. Oracle存储过程基本语法及基础教程

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  8. Oracle 存储过程简单语法

    一.无参数的存储过程 --创建存储过程create or replace procedure getdate as datetime varchar2(); begin select to_char( ...

  9. Oracle存储过程Procedure语法及案例

    create or replace procedure replace(desstr in varchar2, replacestr in varchar2, tablename in varchar ...

随机推荐

  1. Filter应用之-自动登录

    自动登录,是为了帮助用户多次使用这个网页时,不用再次输入用户名和密码就可以登录. 是指用户将用户的登录信息,人,保存到本地的文件中Cookie中. Name,value – 声明时 new Cooki ...

  2. 【树】Path Sum II(递归)

    题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...

  3. Eclipse *的下载(图文详解)

    不多说,直接上干货! 简单了解,Eclipse是绿色软件,下载下来是个压缩包,只需要解压,加上jdk就可以运行了. 相比MyEclipse而言,它是免费的,后者是收费的.各有侧重吧 有很多人用Ecli ...

  4. C/C++ -- Gui编程 -- Qt库的使用 -- Qt窗体的类型状态布局

    -----工程WindowTest----- 1.-----窗体类型type.cpp----- #include <QtGui> int main(int argc, char * arg ...

  5. 数据分析--降维--LDA和PCA

    一.因子分析 因子分析是将具有错综复杂关系的变量(或样本)综合为少数几个因子,以再现原始变量和因子之间的相互关系,探讨多个能够直接测量,并且具有一定相关性的实测指标是如何受少数几个内在的独立因子所支配 ...

  6. TemplateBinding和Binding的区别

    定义 TemplateBinding是为了某个特定场景优化出来的数据绑定版本--需要把ControlTemplate里面的某个Property绑定到应用该ControlTemplate的控件的对应Pr ...

  7. javaScript年份下拉列表框内容为当前年份及前后50年

    javascript下拉列表框,内容为当前年份及前后50年,默认选择为当前年份 <script language="javascript" type="text/j ...

  8. [Hive]使用 Antlr 开发领域语言

    Antlr 简介 ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 是一种语言工具,它提供了一个框架,可以通过包含 Java, C++, ...

  9. H5开发过程中修复的bug记录

    从2016年8月1日开始真正意义上的修复bug,也是自己开发之路的开端,希望在这里记录自己修bug过程中遇到的问题及解决方法,待能够自己开发需求的时候,计划记录开发新需求过程中遇到的问题,并且记录自己 ...

  10. 在LaTeX中配置西夏文字体与环境

    目录 1 配置字族 2 粗体.斜体设定 3 文本编辑器的字体设定(以Sublime Text为例) 4 附录:一些字体的下载源 警告:这篇文章的部分内容需要西夏文字体才能正常显示.若您需要安装,可参考 ...