---pl/sql編程語(yǔ)言
---pl/sql編程語(yǔ)言是對(duì)sql語(yǔ)言的擴(kuò)展,使得sql語(yǔ)言具有過(guò)程化編程的特性。
---pl/sql編程語(yǔ)言比一般的過(guò)程化編程語(yǔ)言,更加靈活高效。
---pl/sql編程語(yǔ)言主要用來(lái)編寫存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)等。
---聲明方法
---賦值操作可以使用:= 也可以使用into查詢語(yǔ)句賦值
declare
i number(2) := 10;
s varchar2(10) := '小明';
ena emp.ename%type;---引用型變量
emprow emp%rowtype;---記錄型變量
begin
dbms_output.put_line(i); -- 10
dbms_output.put_line(s); -- 小明
select ename into ena from emp where empno = 7788;
dbms_output.put_line(ena); -- SCOTT
select * into emprow from emp where empno = 7788;
dbms_output.put_line(emprow.ename || '的工作為:' || emprow.job); -- SCOTT的工作為:ANALYST
end;
--- pl/sql中的if判斷
-- 范例 1:如果從控制臺(tái)輸入 1 則輸出我是 1
declare
pnum number := #
begin
if pnum = 1 then
dbms_output.put_line('我是1');
end if;
end;
-- 范例 2:如果從控制臺(tái)輸入 1 則輸出我是 1否則輸出我不是 1
declare
mynum number := #
begin
if mynum = 1 then
dbms_output.put_line('我是1');
else
dbms_output.put_line('我不是1');
end if;
end;
-- 范例 3:判斷人的不同年齡段 18歲以下是未成年人,18歲以上 40以下是成年人,40以上是老年人
declare
mynum number := #
begin
if mynum < 18 then
dbms_output.put_line('未成年人');
elsif mynum >= 18 and mynum < 40 then
dbms_output.put_line('中年人');
elsif mynum >= 40 then
dbms_output.put_line('老年人');
end if;
end;
---pl/sql中的loop循環(huán)
---用三種方式輸出1到10個(gè)數(shù)字
---while循環(huán)
declare
i number(2) := 1;
begin
while i<11 loop
dbms_output.put_line(i);
i := i 1;
end loop;
end;
---exit循環(huán)
declare
i number(2) := 1;
begin
loop
exit when i>10;
dbms_output.put_line(i);
i := i 1;
end loop;
end;
---for循環(huán)
declare
begin
for i in 1..10 loop
dbms_output.put_line(i);
end loop;
end;
游標(biāo) Cursor 語(yǔ)法: ---游標(biāo):可以存放多個(gè)對(duì)象,多行記錄。
---輸出emp表中所有員工的姓名
declare
cursor c1 is select * from emp;
emprow emp%rowtype;
begin
open c1;
loop
fetch c1 into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close c1;
end;
-----給指定部門員工漲工資
declare
cursor c2(eno emp.deptno%type)
is select empno from emp where deptno = eno;
en emp.empno%type;
begin
open c2(10);
loop
fetch c2 into en;
exit when c2%notfound;
update emp set sal=sal 100 where empno=en;
commit;
end loop;
close c2;
end;
----查詢10號(hào)部門員工信息
select * from emp where deptno = 10;
來(lái)源:https://www./content-2-637301.html
|
|
|
來(lái)自: 印度阿三17 > 《開(kāi)發(fā)》