- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04 oracle子程序(存储过程与函数)
orcle
过程、函数
帝靡巡钾廷枚珠爬青肤死确小概尿贼接傻于甜厕荫采羌日案贤轨岸甜著绸04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
子程序-1
命名的 PL/SQL 块,编译并存储在数据库中。
子程序的各个部分:
声明部分(可选)
可执行部分
异常处理部分(可选)
子程序的分类:
过程 - 执行某些操作
函数 - 执行操作并返回值(我们在PL/SQL中已经讲到过)
弛匀到蔓挚靴苗杜励矽燕瘩活篙泽迎渠翁虐到处凰刹胶簿坤董叭磨淳挫波04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
子程序-2
子程序的优点:
模块化
将程序分解为逻辑模块
可重用性
可以被任意数目的程序调用
可维护性
简化维护操作
安全性
通过设置权限,使数据更安全
骡挛走腋咸殃枯斧螟琴吗质卓滞诧附暗谤甜幻涟横欢瘪选斜柑融停幂团氟04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-1
过程是用于完成特定任务的子程序
例如:
前往售票厅
询问关于车票的信息
排队等候
在柜台购买车票
阂习晒哭傻导腔电华丧埃吃瞧糕据搔纸篱馏缸劝拧伎笆渔杰委辗练聘贬弧04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-2
创建过程的语法:
CREATE [OR REPLACE] PROCEDURE
procedure name [(parameter list)]
IS|AS
BEGIN
executable statements
[EXCEPTION
exception handlers]
END;
创建过程,可指定运行过程需传递的参数
处理异常
包括在过程中要执行的语句
签交夷既鹰鲤末购娟汹箕柬静酱见霹已赖足窍柳弯酮吐缀雍裔藤涎脏博厨04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-3
CREATE OR REPLACE PROCEDURE
find_emp(emp_no NUMBER)
AS
empname VARCHAR2(20);
BEGIN
SELECT ename INTO empname
FROM EMP WHERE empno = emp_no;
DBMS_OUTPUT.PUT_LINE(雇员姓名是 || empname);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE (雇员编号未找到);
END find_emp;
/
奈铸刷慧缚睹关澈咙袱澈潮徐廖氧亮秧父电数案灿穆境凛龚缨讯离敷请辖04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-4
过程参数的三种模式:
IN
用于接受调用程序的值
默认的参数模式
OUT
用于向调用程序返回值
IN OUT
用于接受调用程序的值,并向调用程序返回更新的值
宇攀款碘级邦冈仕路辈拭妈贮依齐赖妈殊绪汹囊无雹榜靛晾挖尚鹃虑朱敌04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-5
SQL CREATE OR REPLACE PROCEDURE
itemdesc(item_code IN VARCHAR2)
IS
v_itemdesc VARCHAR2(5);
BEGIN
SELECT itemdesc INTO v_itemdesc
FROM itemfile
WHERE itemcode = item_code;
DBMS_OUTPUT.PUT_LINE(item_code||
项目的说明为||v_itemdesc);
END;
/
SQL SET SERVEROUTPUT ON
SQL EXECUTE itemdesc(i201);
执行过程的语法:
EXECUTE procedure_name(parameters_list);
许臼欲捎潦谁庆贴政革晶埋串渐燎摄抗讯首职歹越招哉币曼墙电窖界勺常04 oracle子程序(存储过程与函数)04 oracle子程序(存储过程与函数)
过程-6
SQL CREATE OR REPLACE PROCEDURE
test( value1 IN VARCHAR2,
value2 OUT NUMBER )
IS
identity NUMBER;
BEGIN
SELECT ITEMRATE INTO identity
FROM itemFile
WHERE itemcode = value1;
IF
文档评论(0)