一 创建存储过程
CREATE OR REPLACE PROCEDURE cuiyaonan2000(存储过程名) ( 参数1 IN NUMBER, 参数2 IN NUMBER, 参数3 OUT Number //如上是in表示你传递给存储过程的参数,out表示存储过程返回给你的参数.可以有多个.不同于下面的变量 ) IS/AS //这里用IS 还是用AS 随个人习惯,没有什么区别 变量1 INTEGER :=0; 变量2 DATE; //如上这些是变量是存储过程的内部变量,相当于在方法内申请的局部变量.当然有全局变量,在此不做介绍.作用就是在下面的语句块中使用,和方法内部变量一致.变量可以有多个. BEGIN 这里是一些用if,while,for等流程语句控制的多个sql; END cuiyaonan2000 //结束标志
用例环境oracle数据库 PL/SQL Developer
create or replace procedure cuiyaonan2000(a in number,b out number)IS first1 char; second2 number(1); third3 number := 123; begin NULL; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); when others then dbms_output.put_line('未知错误'); END; end cuiyaonan2000; //如上 := 是给变量赋值的 传统意义上的 等号 //如上 := 是给变量赋值的 传统意义上的 等号 //如上exception when 就是 拦截异常 跟Try catch 一样 //No_data_found 是异常名 others指所有异常 // dbms_output.put_line 是数据库方法 如同system.out.println
二. 流程控制语句
IF流程语句:
create or replace procedure cuiyaonan2000(a in number,b out number)IS first1 char; second2 number(1); third3 number := 123; begin if a > 0 then begin dbms_output.put_line(a); b:= 123; dbms_output.put_line(a); end; end if; if third3 > 0 then begin dbms_output.put_line(third3); third3 := third3 +1; dbms_output.put_line(third3); end; end if; exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); when others then dbms_output.put_line('未知错误'); end cuiyaonan2000; //如上的传入参数a 不能再赋值,否则报错 //如上 := 是给变量赋值的 传统意义上的 等号 //b 用来接收 cuiyaonan2000存储过程返回的结果.少参数调用报错
FOR流程语句
create or replace procedure cuiyaonan2000(a in number,b out number)IS Cursor cursor is select name from test_table_user; begin FOR temp IN cursor LOOP dbms_output.put_line(temp.name); END LOOP; exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); when others then dbms_output.put_line('未知错误'); end cuiyaonan2000; //如上 cursor 是游标 跟jdbc的游标差不多 指向一条记录.然后用循环来遍历所有查到的记录.这里for temp in 后必须是记录集合
WHILE流程语句
create or replace procedure cuiyaonan2000(a in number,b out number)IS c number :=1; begin while c < 10 LOOP begin c:= c + 1; dbms_output.put_line(c); end; end LOOP; exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); WHEN others then dbms_output.put_line('未知错误'); end cuiyaonan2000;
这是些简单的用例,建议大家看完这些后再去研究下游标.如何调用存储过程可以在 plsql的sql命令中输入如下的代码
//这里是 plsql sql窗口的测试写法 //i 用来接收 cuiyaonan2000存储过程返回的结果.少参数也报错 declare i integer; begin cuiyaonan2000(1,i); end;
相关推荐
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
SQL Server 2005编程入门经典(第2版)之存储过程-触发器.pdf
SQL存储过程入门级教程 SQL存储过程入门级教程 SQL存储过程入门级教程
1CTO下载-SQL Server 2005编程入门经典-触发器和存储过程教程 pdf.rar
1.sql存储过程概述 2.SQL存储过程创建 3.sql存储过程及应用 4.各种存储过程使用指南 5.ASP中存储过程调用的两种方式及比较 6.SQL存储过程在.NET数据库中的应用 7.使用SQL存储过程要特别注意的问题
在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例。这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法。这些示例已在 MySQL 5.5 中...
北京动力节点-Java编程零基础教程-119-Java基本语法-方法详解-方法的调用过程-方法调用过程中栈内存的变化.avi 北京动力节点-Java编程零基础教程-120-Java基本语法-方法的重载-什么是方法重载.avi 北京动力节点-...
不敢夸口本系列多了不起,但至少敢保证你看完本系列,再做完每个小结的测试,你入门是绝对没有问题的!做一个简单的网站是绝对可以的!祝愿大家能够尽快进入.net 2.0的世界。也希望本教程能够帮助你更好的学习。教程出处...
一个简单的教程,给象我一样未入门的人看看,因为觉得SQL的存储过程对提高速度很有帮助
第一阶段---MySql入门教程,pdf 第一阶段---MySQL卸载手册.doc 第一阶段---MySQL基本操作教程PPT.ppt 第一阶段---MySQL安装图解.doc 第二阶段---mysql函数大全pdf 第二阶段---MySQL存储过程实例教程.doc 第二阶段---...
oracle存储过程经典入门教程,适合没有基础的新手快速入门
Oracle存储过程和触发器(PL/SQL入门教程) Oracle存储过程和触发器(PL/SQL入门教程)
C 语言教程 - C 语言教程 - 前言 - C 语言特性 - C 语言的设计 - C 语言具有高效性 - C 语言具有可移植性 - C 语言特点 - 入门级 C 语言程序 - C 语言执行流程 - 你需要理解编译系统做了什么 - 系统硬件...
sql存储过程教程,简单的入门知识。希望能给初学者参考。
语法入门、操作plsql、存储过程、函数、触发器、游标、包、返回类型;一个execle表轻松搞定。
ii ADAMS/View使用入门练习 第五章细化模型 总论-------------------------------------------------------------------------------24 建立设计变量-------------------------------------------------------------...
plsql快速入门教程_包含存储过程,通俗易懂,最适合初学者学习。
本人还是菜鸟一个,东西都是从网页上Copy过来的,没功劳也有苦劳呀,这也是我第一次传资源,希望大家顶顶呀
存储过程实例(初学者),初级者可以学习学习
典型的数据库编程对象包括视图、存储过程、触发器、函数等。视图在第10章已经讲过了,本章将讲述其他常用的数据库编程对象。存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。触发器是一种特殊类型的...