--赋值操作可以使用:=也可以使用into查询语句赋值declare
i number(2) :=10;
s varchar2(10) :='小明';
ena emp.ename%type;---引用型变量
emprow emp%rowtype;---记录型变量begin
dbms_output.put_line(i);
dbms_output.put_line(s);select ename into ena from emp where empno =7788;
dbms_output.put_line(ena);select*into emprow from emp where empno =7788;
dbms_output.put_line(emprow.ename ||'的工作为:'|| emprow.job);end;
pl/sql中的if判断
---输入小于18的数字,输出未成年---输入大于18小于40的数字,输出中年人---输入大于40的数字,输出老年人declare
i number(3) :=ⅈbeginif i<18then
dbms_output.put_line('未成年');
elsif i<40then
dbms_output.put_line('中年人');else
dbms_output.put_line('老年人');endif;end;
pl/sql中loop循环😜
while循环
--用三种方式输出1到10是个数字declare
i number(2):=1beginwhile i<11loop
dbms_output.put_line(i)
i:=i+1;endloop;end;
exit循环
❤️
declare
i number(2):=1;beginloopexitwhen i>10
dbms_output.put_line(i);
i:=i+1;endloopend;
for循环
declarebeginfor i in1..10loop
dbms_output.put_line(i)endloop;end;
createorreplaceprocedure p1(eno emp.empno%type)isbeginupdate emp set sal=sal+100where empno=eno;commitend;---------------------------------------------select*from emp where empno=7788;--测试declarebegin
p1(7788)end;
----通过存储函数实现计算指定员工的年薪----存储过程和存储函数的参数都不能带长度----存储函数的返回值类型不能带长度createorreplacefunction f_yearsal(eno emp.empno%type)return number
is
s number(10);beginselect sal*12+nvl(comm,0)into s from emp where empno = eno;return s;end;--测试f_yearsal--存储函数在调用的时候,返回值需要接收declare
s number(10);begin
s := f_yearsal(7788);
dbms_output.put_line(s);end;
out类型的参数如何使用
---使用存储过程来算年薪createorreplaceprocedure p_yearsal(eno emp.empno%type, yearsal out number)is
s number(10);
c emp.comm%type;beginselect sal*12, nvl(comm,0)into s, c from emp where empno = eno;
yearsal := s+c;end;---测试p_yearsaldeclare
yearsal number(10);begin
p_yearsal(7788, yearsal);
dbms_output.put_line(yearsal);end;