动态执行SQL语句:
1、用PLSQL给emp添加dname列,然后更新这个列的数据;
异常和动态执行SQL部分:
declare
sql_stmt1 varchar2(300); --动态SQL语句
sql_stmt2 varchar2(200);
begin
sql_stmt1:= --给emp添加dname列
‘alter table emp add (dname varchar2(20))’;
sql_stmt2:= --更新这个列的数据
'update emp set dname=
(select dname from dept where emp.deptno=dept.deptno)
where exists
(select dname from dept where emp.deptno=dept.deptno) ';
execute immediate sql_stmt1;
execute immediate sql_stmt2;
commit;
end;
注意:动态语句中是不能有封号;出现的
2、输入某个学生名字,查询该学生的信息,如果该学生不存在,
则引发异常,输出信息,该学生不存在
declare
name t_students.sname%type := ‘&name’;
students t_students%rowtype;
begin
select sno,sname,sage,ssex into students from t_students where sname= name;
dbms_output.put_line
(‘学号是’||students.sno||’,姓名是’||students.sname||’,性别是’||students.ssex||’,年龄’||students.sage);
exception
when no_data_found then
dbms_output.put_line(‘该