手记

plsql块里面 不只是 else if 吧 只能是 elsif

-- 最好在存储过程的结尾加个显式提交!

SQL> create table dept10 as select * from dept where 1=2;

表已创建。

SQL> create table dept20 as select * from dept where 1=2;

表已创建。

SQL> create table dept30 as select * from dept where 1=2;

表已创建。

SQL> create or replace procedure mypro
2 as
3 cursor cur_deptno is select * from dept;
4 deptInfo dept%rowtype;
5 begin
6 for deptInfo in cur_deptno loop
7 if deptInfo.deptno=10 then
8 insert into dept10 values(deptInfo.deptno,deptInfo.dname,deptInfo.loc);
9 elsif deptInfo.deptno=20 then
10 insert into dept20 values(deptInfo.deptno,deptInfo.dname,deptInfo.loc);
11 elsif deptInfo.deptno=30 then
12 insert into dept30 values(deptInfo.deptno,deptInfo.dname,deptInfo.loc);
13 end if;
14 end loop;
15 end;
16 /

过程已创建。

SQL> exec mypro;

PL/SQL 过程已成功完成。

SQL> select * from dept10;

DEPTNO DNAME                        LOC

    10 ACCOUNTING                   NEW YORK

已选择 1 行。

SQL> select * from dept20;

DEPTNO DNAME                        LOC

    20 RESEARCH                     DALLAS

已选择 1 行。

SQL> select * from dept30;

DEPTNO DNAME                        LOC

    30 SALES                        CHICAGO

已选择 1 行。

SQL> rollback;

回退已完成。

SQL> select * from dept10;

未选定行

1人推荐
随时随地看视频
慕课网APP