Oracle存储过程由例子到理论
1.基础环境
oracle HR环境添加新表
CREATE TABLE "HR"."cus_test" (
"id" VARCHAR2 (255 BYTE) NOT NULL,
"mobile" VARCHAR2 (255 BYTE) NULL,
"name" VARCHAR2 (255 BYTE) NULL,
"times" DATE NULL
); ALTER TABLE "HR"."cus_test" ADD CHECK ("id" IS NOT NULL); ALTER TABLE "HR"."cus_test" ADD PRIMARY KEY ("id");
设置自增函数
CREATE SEQUENCE AutoID8 -- 函数名AutoID
START WITH 2 -- 起始值 2
INCREMENT BY 2 -- 步长 2
MINVALUE 2 -- 最小值 2
NOMAXVALUE;
2.存储过程不带参数
CREATE
OR REPLACE PROCEDURE vvinstat AS
BEGIN
INSERT INTO "HR"."cus_test" (
"id",
"mobile",
"name",
"times"
)
VALUES
(
AutoID.nextval,
'',
'kamil',
SYSDATE
) ; COMMIT ;
END ;
/
调用存储过程
SET SERVEROUTPUT ON
DECLARE
BEGIN
VVINSTAT;
END ;
3.带参数IN(scott环境)
CREATE
OR REPLACE PROCEDURE find_emp1 (emp_no NUMBER) AS emp_name VARCHAR2 (20) ;
BEGIN
SELECT
ename INTO emp_name
FROM
EMP
WHERE
empno = emp_no ; DBMS_OUTPUT.PUT_LINE (
'雇员姓名:' || emp_name
) ; EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE ('雇员编号没有找到') ;
END ;
/
执行
SET SERVEROUTPUT ON
DECLARE
BEGIN
FIND_EMP1(7566);
END ;
-- PL/SQL 过程已成功完成。
-- 雇员姓名:JONES
/*
雇员编号没有找到
*/
4.参数out(scott)
CREATE
OR REPLACE PROCEDURE my_proc_out (
value1 IN NUMBER,
value2 out NUMBER
) IS salary NUMBER ;
BEGIN
SELECT
sal INTO salary
FROM
emp
WHERE
empno = value1 ;
IF salary < 8000 THEN
value2 := salary + 500 ; UPDATE emp
SET sal = value2
WHERE
empno = value1 ;
ELSE
value2 := salary ;
END
IF ;
END ;
/
执行:
SET SERVEROUTPUT ON
DECLARE v1 NUMBER := 7566 ; v2 NUMBER ;
BEGIN
MY_PROC_OUT (v1, v2) ; DBMS_OUTPUT.PUT_LINE (
'v2 的值为' || TO_CHAR (v2)
) ;
END ;
/
5.IN OUT(scott)
CREATE or REPLACE PROCEDURE test_IN_OUT
(v1 in out number,
v2 in out number)
is
value1 number:=0;
BEGIN
value1 :=v1;
v1 :=v2;
v2 :=value1;
dbms_output.put_line('v1:'||v1||' '||'v2:'||v2);
end;
/
调用()
set SERVEROUTPUT ON
DECLARE
value1 number :=11111;
value2 number :=22222;
BEGIN
test_IN_OUT(value1,value2);
end;
/
Oracle存储过程由例子到理论的更多相关文章
- oracle存储过程的例子
oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...
- ORACLE存储过程定时器例子(存储过程变量赋值)
CREATE OR REPLACE PROCEDURE SP_DSSJTS_XMRSLOG as str1 ); str2 ); str3 ); begin select 'xmrslog_'||ex ...
- oracle 存储过程
来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...
- Oracle存储过程语法
原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 ...
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程(转)
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- ORACLE存储过程学习
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
- Oracle 存储过程异常处理
Oracle 存储过程异常处理 1.异常的优点 如果没有异常,在程序中,应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no data f ...
- (转)oracle 存储过程 带游标作为OUT参数输出
(转)oracle 存储过程 带游标作为OUT参数输出 存储过程返回OUT参数的游标 例子. 包中带过程 要自己定义一个type [cur_name] is ref cursor游标,返回的时候就直接 ...
随机推荐
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- 【原】tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig的解决
现象: tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig() ...
- SecutrCRTt 连接VirtualBox 中的Ubuntu -端口转发
端口转发: 设置>网络>端口转发 端口转发: 子系统地址通过在Linux系统总使用ifconfig查看: 还需要在linux主机上安装sshd sudo apt-get insta ...
- iOS之获取经纬度并通过反向地理编码获取详细地址
_locationManager = [[CLLocationManager alloc] init]; //期望的经度 _locationManager.desiredAccuracy = kCLL ...
- [转]ASP.NET应用程序生命周期趣谈(二)
在上回书开始的时候我们提到博客园的IIS看了一眼我的请求后就直接交给ASP.NET去处理了,并且要求ASP.NET处理完之后返回HTML以供展示. 那么我们不仅要问: 1, IIS肯定是没有眼睛 ...
- UIView的layoutSubviews和drawRect方法何时调用
首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘. layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubvi ...
- 移动信息化不能延续PC时代的痛
当下,随着移动时代的到来,手机功能逐步完善,各个行业针对这一现象纷纷制定了相应的营销计划,于是霎时间兴起了一股网上订票/网上订饭/网上预约的热潮. 而对于IT行业,成为企业信息化最火的代名词莫过于移动 ...
- ios动态创建类Class
[Objective-C Runtime动态加载]---动态创建类Class 动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法 a.使用objc_al ...
- java实现敏感词过滤(DFA算法)
小Alan在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解. 敏感词过滤应该是不用给大家过多的解释吧?讲白了就是你在项目中输入某些字(比如输入xxo ...
- 查看Oracle执行计划
1.PL/SQL解释计划窗口 优点:方面 缺点:看到信息有限 2.explain_plan for 针对某个句子优化较方便 3.sqlplus Sqlplus里输入命令: set autotrace ...