内容发布更新时间 : 2024/11/16 23:33:39星期一 下面是文章的全部内容请认真阅读。
1、执行结果: 子块:n1=20,n2=20 主块:n1=10,n2=20
2、使用记录变量查询显示部门号为“10”的部门信息。 3、根据从键盘输入的百分制成绩,判断是否合格。 4、计算并显示10!。 5、输出结果: i=5 i=4 i=3 i=2 i=1
1—5的和为:15
6、通过游标逐行显示staff表中性别为“男”的记录的sno,sname,sbirthday3个字段信息。
7、通过IN 和OUT参数,查询并返回指定编号的员工记录。 8、创建行级触发器“staff_trig”,用于对表“staff”进行DML操作之后,显示相应的操作信息。
六、编写程序
1、SET SERVEROUTPUT ON DECLARE
21
grade CHAR(1):='B'; BEGIN CASE grade
WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('优秀'); WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('良好'); WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('中等'); WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('及格'); WHEN 'E' THEN DBMS_OUTPUT.PUT_LINE('不及格'); ELSE DBMS_OUTPUT.PUT_LINE('不存在'); END CASE; END;
2、SET SERVEROUTPUT ON DECLARE
Jch NUMBER:=1; i NUMBER:=1;
n int:=&n; BEGIN
WHILE i<=n LOOP jch:=jch* i; i:= i+1; END LOOP;
DBMS_OUTPUT.PUT_LINE('n的阶乘为:'||jch);
22
END;
3、SET SERVEROUTPUT ON DECLARE
n NUMBER;
CURSOR staff3_cursor(sex CHAR) IS SELECT * FROM staff WHERE ssex=sex; --声明游标
c1 staff3_cursor%rowtype;--定义参考游标结构的记录变量 BEGIN
OPEN staff3_cursor(‘男’); --打开游标 FETCH staff3_cursor into c1; --提取游标数据行 WHILE staff3_cursor%FOUND LOOP DBMS_OUTPUT.PUT_LINE(c1.sno||', ' ||c1.sname||','||c1.sbirthday); FETCH staff3_cursor into c1; END LOOP;
CLOSE staff3_cursor; --关闭游标 END;
4、SET SERVEROUTPUT ON DECLARE
n NUMBER;
CURSOR staff3_cursor IS SELECT * FROM staff WHERE ssex='男'; --声明游标
23
BEGIN
FOR c1 in staff3_cursor LOOP
DBMS_OUTPUT.PUT_LINE(c1.sno||', ' ||c1.sname||','||c1.sbirthday); END LOOP; END;
5、创建存储过程:
CREATE OR REPLACE PROCEDURE
swap(p1 IN OUT NUMBER, p2 IN OUT NUMBER) IS
v_temp NUMBER; BEGIN
v_temp := p1; p1 := p2; p2 := v_temp; END;
调用存储过程: SET SERVEROUT ON DECLARE
num1 NUMBER :=&num1; num2 NUMBER :=&num2; BEGIN
24
swap(num1, num2);
DBMS_OUTPUT.PUT_LINE('num1 = ' || num1); DBMS_OUTPUT.PUT_LINE('num2 = ' || num2); END;
6、CREATE FUNCTION staff1_fun (c1 IN CHAR)
RETURN staff%ROWTYPE AS
v1_staff staff%ROWTYPE;
BEGIN
SELECT * INTO v1_staff FROM staff WHERE sno=c1;
RETURN v1_staff;
END;
25