`
xys_777
  • 浏览: 206289 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

plsql之存储过程的调用和执行

 
阅读更多
  1. 存储过程
  2. 1什么是存储过程?
  3. 用于在数据库中完成特定的操作或者任务。是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用。
  4. 2存储过程的参数模式
  5. 存储过程的参数特性:
  6. IN类型的参数OUT类型的参数IN-OUT类型的参数
  7. 值被传递给子程序返回给调用环境传递给子程序
  8. 返回给调用环境
  9. 参数形式常量未初始化的变量初始化的变量
  10. 使用时默认类型必须明确指定必须明确指定
  11. 3无参数存储过程的使用:
  12. CREATEORREPLACEPROCEDURE过程名[(parameter,...)]
  13. IS
  14. 定义变量
  15. Begin
  16. Plsql程序
  17. End;
  18. 例:创建一个存储过程,用于向数据库中插入一条记录。
  19. 第一步:创建
  20. CREATEORREPLACEPROCEDUREpro_1
  21. IS
  22. Begin
  23. insertintopersonvalues(11,'aa','aav');
  24. End;
  25. 第二步:在sql*plus中执行该过程
  26. execpro_1;
  27. 第三步:通过JDBC使用存储过程。
  28. privateConnectionconn=null;
  29. privateResultSetrs=null;
  30. privateCallableStatementstate=null;
  31. //调用一个无参数的存储过程
  32. publicvoidtestPro()
  33. {
  34. conn=Tools.getConnection();
  35. try{
  36. state=conn.prepareCall("{callpro_1}");
  37. state.execute();
  38. }catch(Exceptione){
  39. //TODOAuto-generatedcatchblock
  40. e.printStackTrace();
  41. }
  42. }
  43. 4带有IN类型参数的存储过程的使用。
  44. 例:创建一个存储过程,用于向数据库中插入一条记录。
  45. 第一步:创建
  46. CREATEORREPLACEPROCEDUREpro_2(idnumber,namevarchar2,emailvarchar2)
  47. IS
  48. Begin
  49. insertintopersonvalues(id,name,email);
  50. End;
  51. 第二步:在sql*plus中执行该过程
  52. execpro_2(12,'aaa','aaa');
  53. 第三步:通过JDBC使用存储过程。
  54. //使用一个带有IN类型参数的存储过程
  55. publicvoidtestPro_in(intid,Stringname,Stringemail)
  56. {
  57. conn=Tools.getConnection();
  58. try{
  59. state=conn.prepareCall("{callpro_2(?,?,?)}");
  60. state.setLong(1,id);
  61. state.setString(2,name);
  62. state.setString(3,email);
  63. state.execute();
  64. }catch(Exceptione){
  65. //TODOAuto-generatedcatchblock
  66. e.printStackTrace();
  67. }
  68. }
  69. 5带有out类型参数的存储过程的使用。
  70. 例:创建一个存储过程,用于返回数据库中的Person表的总行数。
  71. 第一步:创建
  72. CREATEORREPLACEPROCEDUREpro_3(numoutnumber)
  73. IS
  74. mynumnumber;
  75. Begin
  76. selectcount(*)intomynumfromperson;
  77. num:=mynum;
  78. End;
  79. 或者
  80. CREATEORREPLACEPROCEDUREpro_3(numoutnumber)
  81. IS
  82. Begin
  83. selectcount(*)intonumfromperson;
  84. End;
  85. 第二步:在sql*plus中执行该过程
  86. declare
  87. anumber;
  88. begin
  89. pro_3(a);
  90. dbms_output.put_line(a);
  91. end;
  92. 第三步:通过JDBC使用存储过程。
  93. publicvoidtestPro_out()
  94. {
  95. conn=Tools.getConnection();
  96. try{
  97. state=conn.prepareCall("{callpro_3(?)}");
  98. state.registerOutParameter(1,Types.NUMERIC);
  99. state.execute();
  100. intnum=state.getInt(1);
  101. System.out.println(num);
  102. }catch(Exceptione){
  103. //TODOAuto-generatedcatchblock
  104. e.printStackTrace();
  105. }
  106. }
  107. 6带有in-out类型参数的存储过程的使用。
  108. 创建:
  109. CREATEORREPLACEPROCEDUREpro_4(numinoutnumber)
  110. IS
  111. anumber:=100;
  112. Begin
  113. num:=a*num;
  114. End;
  115. 在sql*plus中执行该过程
  116. declare
  117. anumber:=12;
  118. begin
  119. pro_4(a);
  120. dbms_output.put_line(a);
  121. end;


分享到:
评论

相关推荐

    plsql之存储过程

    plsql之存储过程的调用和执行,例子讲解,注释不多,但还是实用

    PLSQL jdbc调用存储过程(入门)

    PLSQL jdbc调用存储过程(入门)

    oracle触发器调用存储过程

    oracle触发器调用存储过程,最简单的例子适用于初学者

    plsql developer简单实现定时器&存储过程

    what主要填写你需要定时器执行的存储过程名称。如上图所示,我写了一个名称为“AddHydropowerData”的存储过程。 Interval为定时器执行的时间。 (1).每分钟执行 Interval => TRUNC(sysdate,‘mi’) + 1/ (24*60) ...

    PLSQL简易教程学过以后plsql不愁

    PLSQL 支持所有 SQL 数据类型和所有 SQL 函数,同时支持所有 ORACLE 对象类型 PLSQL 块可以被命名和存储在 ORACLE 服务器中,同时也能被其他的 PLSQL 程序或 SQL 命令调用,任何客户/服务器工具都能访问 PLSQL 程序...

    触发器和程序包

    说其具有特殊性,是因为触发器的调用执行和存储过程不一样,存储过程的程序调用执行必须由程序员事先设计并编写好调用程序代码及对应的参数值,即存储过程的调用执行由程序员决定,而触发器程序不能被应用程序调用,...

    PLSQLDeveloper下载

    因为PL/SQL允许混合SQL申明和过程结构,因此可以在将申明发送到甲骨文系统去执行之前使用PL/SQL区段和副程序来组合SQL申明,没有PL/SQL,甲骨文需要就每次处理SQL申明,在网络环境中,这将影响交通流量,而且增加...

    plsqldeveloper快捷键设置.pdf

    可以通过选择 Procedures,查找需要调用的存储过程,然后选中调试的存储过程,点击右键,选择 Test,然后在弹出来的 Test.script 窗口中,对于定义为 in 类型的参数,需要给该参数的 Value 输入值,最后点击 Start ...

    plsql_oracle 编程

    第六章 存储函数和过程 13 §6.1 引言 13 §6.2 创建函数 13 §6.3 存储过程 13 §6.3.1 创建过程 13 §6.3.2 调用存储过程 13 §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 ...

    keep tool8(集成PLSQL含keygen)part1

    它使开发者可以对PL/SQL存储程序单元和Java类进行编码和编译,可以使DBA检测到数据库内部构造的任何部分,并且通过上下页菜单和图形用户界面,执行任何ALTER命令。Hora提供了一种快速简易的方式进行读取、保存和执行...

    Oracle_PLSQL语言基础

    PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。  . 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL...

    GBase-8s数据库平台PLSQL语法手册.pdf

    函数和过程可以被多次调用,提高代码的可重用性和灵活性。 触发器: 触发器是一种特殊的存储过程,用于自动执行某些操作,例如当数据发生变化时自动触发某些操作。触发器可以提高数据的一致性和完整性。 异常处理...

    Oracle_Database10g_性能调整与优化-第10章_使用PLSQL提高性能

    一旦这些对象以编译过的格式存储在数据库中,那么用户只要获得相应对象的执行特权就都可以使用任何的Oracle工具来执行这些对象。一旦开始执行对象,p-代码(可执行代码)将被加载到SGA共享池中,再由 Oracle执行。一个...

    PLSQL Developer(免安装、汉化版,很好用的) 8.0.3.1510.rar

    另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。  命令窗口——使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同...

    plsql_oracle 8i 编程讲义

    第六章 存储函数和过程 13 §6.1 引言 13 §6.2 创建函数 13 §6.3 存储过程 13 §6.3.1 创建过程 13 §6.3.2 调用存储过程 13 §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 ...

    PLSQL基础教程

    第六章 存储函数和过程 13 §6.1 引言 13 §6.2 创建函数 13 §6.3 存储过程 13 §6.3.1 创建过程 13 §6.3.2 调用存储过程 13 §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建...

    PLSQL程序设计

    第六章 存储函数和过程 13 §6.1 引言 13 §6.2 创建函数 13 §6.3 存储过程 13 §6.3.1 创建过程 13 §6.3.2 调用存储过程 13 §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 ...

    oracle课件:第七章 PLSQL子程序设计.ppt

    子程序是指已命名的PL/SQL程序块,它们存储在数据库中,可以为它们指定参数,可以在任何数据库客户端和应用程序中调用它们。子程序具有声明部份、可执行部份和可选的异常处理部份。声明部份可包括常量、变量、游标、...

    OraclePLSQL编程经典例子

    3. 调用过程 exec 过程名(参数1,参数2…)或call 过程名参数1,参数2…) ① exec xxc_pro1; 或者是 ② call xxc_pro1; pl/sql可以做什么? 块:包括过程、函数、触发器、包。 编写规范: 1. 注释 --:单行注释 eg:...

    Toad 使用快速入门

     把鼠标定位到表/视图/存储过程名称之上,按F4,可以打开对象描述窗口,方便的查看表和视图的定义,存储过程的源代码,  非常容易对SQL语句的分析其执行计划:单击工具栏上的 按钮就可以看到Explain Plan的...

Global site tag (gtag.js) - Google Analytics