1、存储过程和函数的区别。
(1)、存储过程是作为PL/SQL语句执行,而函数是作为表达式的一部分调用;
(2)、存储过程在规格说明中不包含return语句,而在函数的规格说明这包含return子句;
(3)、存储过程不返回值,而函数必须返回值;
(4)、在存储过程中可以包含return语句,但不返回任何值,他只表示退出存储过程,而函数中必须包含一个return语句;
2、触发器分为事前触发和事后触发,这两种触发有何区别。语句级触发和行级触发有何区别。
事前触发是在数据没有写入数据库时就触发,而事后触发是在把数据写入数据库后再触发
语句级触发值所有的相同的语句只触发一次,而行级触发是每执行一条语句就触发一次。
3、根据students表(stuID,stuName,stuSex,stuAge,stuTel)编写一个存储过程,将students表中的学生ID号传递给这一过程,并向调用应用程序返回学生的姓名和电话号码。再编写一个具有过程调用的匿名块。
存储过程
create or replace procedure pro_stu(id in number,stuname out varchar2,
stutel out varchar2) as
begin
select A.stuname,A.stutel into stuname,stutel from students A
where A.stuid=id;
end pro_stu;
匿名块:
declare
stuid number(3);
stuname varchar2(12);
stutel varchar2(15);
begin
stuid:=&stuid;
pro_stu(stuid,stuname,stutel);
DBMS_OUTPUT.PUT_LINE('姓名:' || stuname);
DBMS_OUTPUT.PUT_LINE('电话:' || stutel);
EXCEPTION
when NO_DATA_FOUND then
DBMS_OUTPUT.PUT_LINE('未找到符合条件的数据!!');
end;
4、在显示游标上可以执行哪些操作?举例说明每一种语句的作用。
*声明游标
*打开游标