function

lyyyyhj 2007-12-26 01:03:51
Oracle8i里面自帶的數據庫Scott
寫一個Procedure要求﹕
打印部門的員工工資﹐如果某個員工的工資< 傳入的參數則將 工資+200,
最后將部門工資回傳存儲過程
...全文
74 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyyyyhj 2007-12-26
  • 打赏
  • 举报
回复
lynx你還在么????
lyyyyhj 2007-12-26
  • 打赏
  • 举报
回复
還在么? ??lynx
lynx 2007-12-26
  • 打赏
  • 举报
回复
create or replace procedure mytest(p_ename varchar2 ,p_salary number, o_new_sal out number)
is
begin
update emp
set sal=sal+200
where sal <p_salary and and ename= p_ename;
dbms_output.enable(20000);
for myrec in (select deptno,ename,sal from emp where ename= p_ename)
dbms_output.putline(myrec.deptno ¦ ¦' ' ¦ ¦myrec.ename ¦ ¦' ' ¦ ¦to_char(myrec.sal));
o_new_sal :=myrec.sal;
end loop;
commit;
end;
/

然后再外面调用这个过程,从o_new_sal就能返回新的salary,如:
...
a varchar2(30):=null;
b number:=0;
c number:=0;
begin
...
a:='aaa';
b:=2000;
mytest(a,b,c);
--这里C就是新的salary了
...
end;
lyyyyhj 2007-12-26
  • 打赏
  • 举报
回复
你的程序基本正確﹕修改如下
create or replace procedure mytest(v_sal in number,v_outsal out number)
is
begin
update emp
set sal=sal+200
where sal < v_sal;
dbms_output.enable(2000);
for myshow in (select deptno,ename,sal from emp order by deptno)
LOOP
dbms_output.put_line(myshow.deptno ||'*'|| myshow.ename ||'*'||to_char(myshow.sal));
end loop;
commit;
end mytest;

其中如何 通過傳出參數v_outsal﹐將值傳回給存儲過程
lyyyyhj 2007-12-26
  • 打赏
  • 举报
回复
怎樣通過定義的傳出參數
將工資傳出
lynx 2007-12-26
  • 打赏
  • 举报
回复
dbms_output.putline(myrec.deptno ¦ ¦' ' ¦ ¦myrec.ename ¦ ¦' ' ¦ ¦to_char(myrec.sal));
改成
dbms_output.put_line(myrec.deptno ¦ ¦' ' ¦ ¦myrec.ename ¦ ¦' ' ¦ ¦to_char(myrec.sal));
lyyyyhj 2007-12-26
  • 打赏
  • 举报
回复
出現了編譯錯誤
lynx 2007-12-26
  • 打赏
  • 举报
回复
不知道是不是你想要的。Procedure? Function?

create or replace procedure mytest(p_salary number)
is
begin
update emp
set sal=sal+200
where sal<p_salary;
dbms_output.enable(20000);
for myrec in (select deptno,ename,sal from emp order by deptno)
dbms_output.putline(myrec.deptno||' '||myrec.ename||' '||to_char(myrec.sal));
end loop;
commit;
end;
/

sql>set serveroutput on
sql>exec mytest(2000);

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧