select * from scott.emp where empno=7839 or empno=7566
select * from emp5
create table emp5 as select * from scott.emp函數
-----------------in事務
create or replace procedure raisesalary(eno in number)
as
--定義一個變量保存漲薪前的薪水
psal emp5.sal%type;
begin
--獲得員工漲前的薪水
select sal into psal from emp5 where empno =eno;it
--給該員工漲100
update emp5 set sal=sal+100 where empno=eno;table
--需不須要commit?
--注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)變量
--打印
dbms_output.put_line('漲前:'||psal||' 漲後:'||(psal + 100));
end;
/date
begin
raisesalary(7839);
raisesalary(7566);
commit;
end;
/select
---------------in,out查詢
create or replace procedure raisesalary1(eno in number,sal out emp5.sal%type)
as
--定義一個變量保存漲薪前的薪水
psal emp5.sal%type;
begin
--獲得員工漲前的薪水
select sal into psal from emp5 where empno =eno;存儲過程
--給該員工漲100
update emp5 set sal=sal+100 where empno=eno;db
--需不須要commit?
--注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)
--打印
sal:=psal;
dbms_output.put_line('漲前:'||psal||' 漲後:'||(psal + 100));
--dbms_output.put_line(sal);
end;
/
declare a emp5.sal%type;
begin
raisesalary1(7839,a);
dbms_output.put_line('a='||a);
raisesalary1(7566,a);
dbms_output.put_line(a);
commit;
end;
------------------in out
create or replace procedure raisesalary2(sal2 in out number) as
--定義一個變量保存漲薪前的薪水
psal number;
begin
--獲得員工漲前的薪水
-- select sal into psal from emp5 where empno = sal2;
--給該員工漲100
update emp5 set sal = sal + 100 where empno = sal2;
--需不須要commit?
--注意:通常不在存儲過程或者存儲函數中,commit和rollback(通常是誰調用誰提交,保證事務完整性)
--打印
sal2 := psal;
dbms_output.put_line('漲前:' || psal || ' 漲後:' || (psal + 100));
--dbms_output.put_line(sal);
end;
/
declare
a number := 7839;---得另定義一個變量去接收返回值
begin
raisesalary2(a);
dbms_output.put_line('a=' || a);
a := 7566;
raisesalary2(a);
dbms_output.put_line(a);
commit;
end;
select * from emp5
---------------------無參數的存儲過程
create procedure a1 as
begin
insert into emp5(empno,ename,job) values(111,'hello','hello');
commit;
end;
begin
a1;
end;
select * from emp5;----查詢執行存儲過程後是否插入成功