问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

创建存储过程,使用OUT类型参数获得雇员经理名,怎么做,

发布网友 发布时间:2022-06-16 04:01

我来回答

3个回答

热心网友 时间:2022-06-19 03:29

--一共两个想法,你看看哪个你喜欢
--第一个想法是传一个编号,返回一个值
--过程
create or replace procere wangsc_pro(
p_number in number,
p_name out varchar2
)
as
cursor cur_emp is
select m.ename from emp w join emp m on w.mgr=m.empno and w.empno=p_number;
begin
open cur_emp;
loop
fetch cur_emp into p_name;
exit when cur_emp%notfound;
end loop;
close cur_emp;
end;
--调用
declare
v_empno emp.empno%type:=7369;
v_ename emp.ename%type;
begin
wangsc_pro(v_empno,v_ename);
dbms_output.put_line('雇员:'||v_empno||'--经理:'||v_ename);
end;
--第二个想法是不传参数,返回记录集
--定义一个包
create or replace package testpackage as
type test_cursor is ref cursor;
end testpackage;
--过程
create or replace procere wangsc_pro(
p_cursor out testpackage.test_cursor
)
as
v_sql varchar2(1000);
begin
v_sql := 'select w.ename,m.ename from emp w join emp m on w.mgr=m.empno';
open p_cursor for v_sql;
end;
--调用
declare
v_wename emp.ename%type;
v_mename emp.ename%type;
pp_cursor testpackage.test_cursor;
begin
wangsc_pro(pp_cursor);
loop
fetch pp_cursor into v_wename,v_mename;
exit when pp_cursor%notfound;
dbms_output.put_line('雇员:'||v_wename||'-经理:'||v_mename);
end loop;
close pp_cursor;
end;

热心网友 时间:2022-06-19 03:29

--【练习2】创建存储过程,使用OUT类型参数获得雇员经理名
CREATE OR REPLACE PROCEDURE PRO_GET_MGR(E_NO IN NUMBER,M_NAME OUT VARCHAR2)
AS
BEGIN
SELECT M.ENAME INTO M_NAME FROM EMP E,EMP M WHERE M.EMPNO=E.MGR AND E.EMPNO=E_NO;
DBMS_OUTPUT.PUT_LINE('员工编号'||E_NO||'的经理名为:'||M_NAME);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('输出出现异常');
END;
DECLARE
M_NAME EMP.ENAME%TYPE;
BEGIN
PRO_GET_MGR('7369',M_NAME);
END;
下面的方法是根据ENAME员工名来查找
--【练习2】创建存储过程,使用OUT类型参数获得雇员经理名
CREATE OR REPLACE PROCEDURE PRO_GET_MGR(E_NAME VARCHAR2,M_NAME OUT VARCHAR2)
AS
BEGIN
SELECT M.ENAME INTO M_NAME FROM EMP E,EMP M WHERE M.EMPNO=E.MGR AND E.ENAME=E_NAME;
DBMS_OUTPUT.PUT_LINE('员工'||E_NAME||'的经理名为:'||M_NAME);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('输出出现异常');
END;

DECLARE
M_NAME EMP.ENAME%TYPE;
BEGIN
PRO_GET_MGR('SMITH',M_NAME);
END;

热心网友 时间:2022-06-19 03:30

直接给out 参数赋值就好,其它和另的存储过程没区别追问能把具体的代码写给我看下嘛?
我自己创建好了过程,但是执行时总是说存在重复值,麻烦各位给个具体代码?
这两张表示oracle中内置的两张表!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...开始是大腿内侧,后是大腿跟上,脖子后面,再就是肚子上,现在几乎... 工程土方定额里面:人力 运输距离 0.5km以内 20m以内是什么意思 ...由诸葛亮著的《诫子训》中摘录的,问您是如何理解的?! 手把手带你将 Linux 主机配置为静态路由器 Linux配置路由功能及添加静态路由 Linux模拟路由器从实现网络模拟到运行路由器linux模拟路由器 幼儿园中班学期结束家长会稿子怎么写 幼儿园中班期末家长会的发言稿 女人在哪个年龄段性俗最强 谁知道女人多大性欲最高? R. Kelly Featruring Huey&R. Kelly Featuring Huey的《Hook It Up》 歌词 Hue & Cry的《Fireball》 歌词 苹果手机怎么看皓影 天蝎女和双子男谈恋爱该注意什么?应该如何相处?求解 怎么和双子座的男生谈恋爱 北京哪里有二手车检测的地方? 梦见两群鸡追我,两面夹击,很生气的样子,里面还有大公鸡,是怎么回 迪信泰检测科技北京有限公司怎么样? 梦见鸡追着我等吃我咳出来的东西 怎样和双子男恋爱 2019年保险消费者信心指数 指数保险含义是什么意思 小学生常用成语大全成语什么灭绝 财付通,支付宝,许多转账什么的都是免费的,还有积分,那他们的盈利模式是什么,利润点在哪 跟双子座男生谈恋爱,需要注意什么? 新百伦酷跑为什么那么便宜 新加坡买newbalance鞋子便宜吗 为什么newbalance京东自营比天猫旗舰店便宜这么多。 哪里买new balance便宜 为什么商场里面的NewBLance鞋那么便宜 有150 250 300多的 鞋子是高仿的吗 凉皮为啥裂痕 妙不可言造句和意思 车队如何和酒店谈合作 甲醛治理销售如何从酒店寻找合作? 梦见妻子在岳父家干活 建设企事业单位关键岗位持证上岗管理规定 双子座如果陷入恋爱当中会有怎样的表现? 女生可以跟男友求婚吗? VIPKID课程价格是怎么规定的?多少钱一节课? 我想养条小狗,长不大的那种,萌萌的可爱一点的,有什么品种可以养?还有就是养小狗的费用一个月大概是多 梦见空缸烂了、我挪缸了、一看缸烂了都是碎片 梦见缸和桶摔两半 妙不可言怎么造句 凯立德最新地图升级要多少钱 2台同样的抽水机,3小时可以浇地1.2公顷,照这样计算,一台抽水机每小时可以浇地多少公顷? 三台抽水机抽水浇地,甲抽水机10 小时浇地3公顷,乙抽水机15小时浇地4公顷,丙抽水机28小时浇地 李家村用抽水机浇地抗旱,3台抽水机2.5小时共浇地1.65公顷,一台抽水机每小时可以浇地多少公顷? 两台抽水机21小时浇地4.8公顷,一台抽水机每小时收费多少公顷? 一台抽水机,3小时可以浇地1点2公顷。照这样计算,5台同样的抽水机8小时可以浇地多少公顷? 3台同样的抽水机,4小时可以浇地2.4公顷,1台抽水机每小时可以浇地多少公顷