oracle存储过程函数和程序包

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在 5. 使用函数查询部门信息 6. 使用程序包封装过程和函数
oracle存储过程函数和程序包
相关实践知识
l 从开始菜单中打开SQL*Plus工具,以SCOTT 用户的身份登录到数据库
oracle存储过程函数和程序包
不带参数的过程2-1
输入以下代码,创建一个最简单的过程 功能: 显示”Hello World!”
END;
oracle存储过程函数和程序包
l 输出结果:
带输出参数的过程3-3
oracle存储过程函数和程序包
带IN OUT参数的过程2-1
lC(ioR实_EvAa现TluEe功OINRO能RUETP:查LVAACR询ECHP某ARRO个2C)E部DU门RE名sp_称dep在t_d表namdee_pextis中t 是否 IS 已经存在
SELECT COUNT(*) INTO o_count FROM dept; END sp_getcount;
oracle存储过程函数和程序包
带输出参数的过程3-2
l 编写一段匿名的PL/SQL块来执行过程
DECLARE cnt NUMBER;
BEGIN sp_getcount(cnt); DBMS_OUTPUT.PUT_LINE('dept表中的记录数为: '||cnt);
l WHEN NO_DATA_FOUND THEN
l
RETURN '错误!该编号的部门不存在!';
l END f_dept_getname_byno;
oracle存储过程函数和程序包
l 函数的调用及其输出结果 :
函数4-3
oracle存储过程函数和程序包
函数4-4
l 删除函数 DROP FUNCTION f_dept_getname_byno
INSERT INTO dept VALUES(i_deptno,i_dname,i_loc); COMMIT; EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('添加失败!原因为:'||SQLERRM); ROLLBACK; END sp_dept_insert;
l_count NUMBER;
lBES创GELIN建ECT带COINUNOT(*U) INTT参O l_数co的unt过FR程OM,dep代t W码HE为RE:
dname=io_value; IF(l_count>0) THEN
io_value:='存在'; ELSE
io_value:='不存在'; END IF; END sp_dept_dname_exist;
END;
l 输出结果: l 部门名称ACCOUNTING存在!
oracle存储过程函数和程序包
函数4-1
l 实现功能: 按部门编号查询出表dept中的部门名称
l 创建一个函数,代码为:
oracle存储过程函数和程序包
函数4-2
l CREATE OR REPLACE FUNCTION f_dept_getname_byno
l (i_deptno NUMBER)
l RETURN VARCHAR2
l AS
l l_dname VARCHAR2(14);
l BEGIN
l SELECT dname INTO l_dname FROM dept WHERE deptno=i_deptno;
l RETURN l_dname;
l EXCEPTION
oracle存储过程函数和程序包
带输入参数的过程3-3
l 分别输入两组数据来执行过程 ,结果如下:
oracle存储过程函数和程序包
带输出参数的过程3-1
l 实现功能:通过输出参数count来得到dept表 中的记录数
l 创建带输出参数的过程
CREATE OR REPLACE PROCEDURE sp_getcount (o_count OUT NUMBER) AS BEGIN
oracle存储过程函数和 程序包
2020/11ห้องสมุดไป่ตู้3
oracle存储过程函数和程序包
回顾
l 游标就是指向上下文区的句柄或指针。 l 游标有两种类型:显式游标、隐式游标。 l 四个游标属性 :SQL%FOUND、SQL%
NOTFOUND、SQL%ROWCOUNT、SQL% ISOPEN l 显式游标的使用步骤 :4个 l 记录变量和%ROWTYPE l 带参数的游标 l 游标FOR循环(循环游标) l 游标中的更新和删除 l REF游标
oracle存储过程函数和程序包
教学目标
l 掌握过程的用法 l 掌握函数的用法 l 理解过程与函数的相同点和不同点 l 理解程序包的概念并能熟练应用
oracle存储过程函数和程序包
工作任务
1. 用无参过程实现“Hello World!”程序 2. 用带输入参数的过程向表中插入记录 3. 用带输出参数的过程查询表中的记录数 4. 使用带输入输出参数的过程查询记录是否存
CREATE OR REPLACE PROCEDURE sp_helloWorld AS BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!'); END sp_helloWorld;
oracle存储过程函数和程序包
不带参数的过程2-2
l 执行过程 l EXECUTE sp_helloWorld; l 执行结果: l 删除过程 l DROP PROCEDURE sp_helloWorld;
oracle存储过程函数和程序包
带IN OUT参数的过程2-2
l 执行过程:
DECLARE l_iotest varchar2(20):='ACCOUNTING';
BEGIN sp_dept_dname_exist(l_iotest); DBMS_OUTPUT.PUT_LINE('部门名称ACCOUNTING'||l_iotest||'!');
oracle存储过程函数和程序包
带输入参数的过程3-1
l 实现的功能:向表dept中插入一条记录 l 创建带输入参数的过程,代码为:
oracle存储过程函数和程序包
带输入参数的过程3-2
CREATE OR REPLACE PROCEDURE sp_dept_insert (i_deptno NUMBER, i_dname VARCHAR2, i_loc VARCHAR2) AS BEGIN
相关文档
最新文档