1、编写一个简易输出语句
declare
v_sno number:=1000;
v_name varchar2(10):='tom';
v_sal number:=1000;
v_year constant number:=12;
begin
dbms_output.put_line(v_sno||' '||v_name||' salary is '||v_sal||' year is '||v_year);
end;
输出结果显示:

2、编写PL/SQL程序块计算1+2+3+……+100的值。
declare
v_sum number:=0;
v_count number:=0;
begin
loop
v_sum := v_sum +v_count;
v_count := v_count +1;
exit when v_count >100;
end loop;
dbms_output.put_line('v_sum='||v_sum);
end;
本题解答方式较多,这里采用的是loop循环
结果显示:

3、定义变量v_eno,其类型与emp表的字段empno一致,设置该变量的值为7369。查询该员工的姓名并打印输出。
declare
v_eno emp.empno%type := 7369;
v_ename emp.ename%type;
begin
select ename into v_ename from emp where empno = v_eno;
dbms_output.put_line('v_ename = '||v_ename);
end;
结果显示:

4、编写PL/SQL程序块,使用变量定义员工号为7900,使用记录变量接收该员工号的员工信息(员工姓名、工资和所在部门名称),并分别将其姓名、工资和所在部门名称打印输出。
declare
v_eno emp.empno%type := 7900;
type record_type_emp is record(
ename emp.ename%type,
sal emp.sal%type,
deptno emp.deptno%type
);
emp_record record_type_emp;
begin
select ename,sal,deptno into emp_record from emp where empno=v_eno;
dbms_output.put_line('ename:'||emp_record.ename||' sal:'||emp_record.sal||' deptno:'||emp_record.deptno);
end;
这题重点在记录变量,需要掌握格式
结果显示:

5、编写PL/SQL程序块更新表emp,定义变量部门编号并为其赋值,根据部门编号的值更新该部门的员工工资:
先对部门编号进行If判断。若部门编号不存在,则显示“该部门不存在”,否则使用case执行以下步骤:
部门10的员工增加10%的工资;
部门20的员工降低5%的工资;
其它部门的员工增加300元的工资。
declare
v_deptno emp.deptno%type;
begin
v_deptno := &deptno;
if v_deptno = 10
then update emp set sal = sal*1.1 where deptno = v_deptno;
elsif v_deptno = 20
then update emp set sal = sal*0.95 where deptno = v_deptno;
else update emp set sal = sal + 300 where deptno = v_deptno;
end if;
end;
本题主要是对if语句格式的考察
PL/SQL语句是学习Oracle的一部分,后续还有需要学习的知识。
(个人记录)
1794



被折叠的 条评论
为什么被折叠?



