笔记081120----PL/SQL
来源:互联网 发布:济南php招聘 编辑:程序博客网 时间:2024/06/05 20:08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
声明变量X 为VARCHAR2(20)类型 并将X打印在窗口
SQL>
1 DECLARE
2 X VARCHAR2(20);
3 BEGIN
4 X:='THIS IS ....';
5 DBMS_OUTPUT.PUT_LINE('X的值为:'||X);
6* END;
SQL> /
X的值为:THIS IS ....
PL/SQL 过程已成功完。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
标准输出,也就是显示屏上输出。
打开输出就是set serveroutput on or dbms_output.enable(buffer_size in integer default 20000);
关闭输出就是set serveroutput off or dbms_output.disable;
SQL> SET SERVEROUTPUT ON SIZE 10000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> /
X的值为:THIS IS ....
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
保持和执行脚本
SQL> SAVE E:/oracle/plsql_01.sql
已创建 file E:/oracle/plsql_01.sql
SQL> @ E:/oracle/plsql_01.sql
X的值为:THIS IS ....
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
写一个IF THEN ELSIF THEN ELSE END IF
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 A NUMBER;
3 B VARCHAR2(10);
4 BEGIN
5 A:= 2;
6 IF A = 1 THEN
7 B := 'A';
8 ELSIF A = 2 THEN
9 B:='B';
10 ELSE
11 B:='C';
12 END IF;
13 DBMS_OUTPUT.PUT_LINE('B is :'||B);
14* END;
SQL> /
B is :B
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
写一个case的判断
SQL> DECLARE
2 A NUMBER;
3 B VARCHAR2(10);
4 BEGIN
5 A:= 3;
6 CASE
7 WHEN A = 1 THEN B:= 'A=1';
8 WHEN A = 2 THEN B:= 'A=2';
9 WHEN A = 3 THEN B:= 'A=3';
10 ELSE B:='OTHER';
11 END CASE;
12 DBMS_OUTPUT.PUT_LINE('B IS : /N'||B);
13 END;
14 /
B IS : /NA=3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOOP 循环
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 LOOP
6 X:=X+1;
7 IF X>=3 THEN
8 EXIT;
9 END IF;
10 DBMS_OUTPUT.PUT_LINE('IN THE LOOP X= '|| X);
11 END LOOP;
12 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP X=' || X);
13 END;
14 /
IN THE LOOP X= 1
IN THE LOOP X= 2
OUT THE LOOP X=3
PL/SQL 过程已成功完成。
_______________
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 LOOP
6 X:=X+1;
7 EXIT WHEN X>=3;
8 DBMS_OUTPUT.PUT_LINE('IN THE LOOP'||X);
9 END LOOP;
10 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP'||X);
11 END;
12 /
IN THE LOOP1
IN THE LOOP2
OUT THE LOOP3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WHILE循环
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 WHILE X<3 LOOP
6 X:=X+1;
7 DBMS_OUTPUT.PUT_LINE('IN THE LOOP '||X);
8 END LOOP;
9 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP ' ||X);
10 END;
11 /
IN THE LOOP 1
IN THE LOOP 2
IN THE LOOP 3
OUT THE LOOP 3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FOR循环
SQL> BEGIN
2 FOR I IN 1..5 LOOP
3 DBMS_OUTPUT.PUT_LINE('I = '||I);
4 END LOOP ;
5 DBMS_OUTPUT.PUT_LINE('END THE LOOP');
6 END;
7 /
I = 1
I = 2
I = 3
I = 4
I = 5
END THE LOOP
PL/SQL 过程已成功完成。
————————————
SQL> BEGIN
2 FOR I IN REVERSE 1..5 LOOP
3 DBMS_OUTPUT.PUT_LINE('I = '||I);
4 END LOOP;
5 END;
6 /
I = 5
I = 4
I = 3
I = 2
I = 1
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
GOTO语句 用<<标记>>做标记
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 <<REPEATE_LOOP>>
6 X:=X+1;
7 DBMS_OUTPUT.PUT_LINE('X = '||X);
8 IF X<3 THEN
9 GOTO REPEATE_LOOP;
10 END IF ;
11 END;
12 /
X = 1
X = 2
X = 3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT .....INTO .......
SQL> DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '01062106';
5 DBMS_OUTPUT.PUT_LINE('THE NAME IS '|| TEST);
6 END ;
7 /
THE NAME IS 张故乡
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```````````````````
系统异常NO_DATA_FOUND
SQL> DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '05062233';
5 DBMS_OUTPUT.PUT_LINE('THE SNAME IS ' || TEST);
6 EXCEPTION
7 WHEN NO_DATA_FOUND THEN
8 DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
9 END;
10 /
NO DATA FOUND
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
系统异常
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('THE SNAME IS ' || TEST);
6 EXCEPTION
7 WHEN NO_DATA_FOUND THEN
8 DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
9* END;
SQL> /
THE SNAME IS 张晔
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~````
自定义异常
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 NAME VARCHAR2(10);
3 E EXCEPTION; --声明变量
4 BEGIN
5 SELECT SNAME INTO NAME FROM STUDENT WHERE SNO = '01062108';
6 IF NAME <> 'CHINA' THEN
7 RAISE E; -----引发异常E
8 END IF;
9 DBMS_OUTPUT.PUT_LINE('NAME IS ' || NAME);
10 EXCEPTION ----------------------
11 WHEN E THEN
12 DBMS_OUTPUT.PUT_LINE('ERROR ');
13* END;
SQL> /
ERROR
PL/SQL 过程已成功完成。
——————————————————
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 NAME VARCHAR2(10);
3 E EXCEPTION;
4 BEGIN
5 SELECT SNAME INTO NAME FROM STUDENT WHERE SNO = '01062108';
6 IF NAME <> '张晔' THEN
7 RAISE E;
8 END IF;
9 DBMS_OUTPUT.PUT_LINE('NAME IS ' || NAME);
10 EXCEPTION
11 WHEN E THEN
12 DBMS_OUTPUT.PUT_LINE('ERROR ');
13* END;
SQL> /
NAME IS 张晔
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
复合变量:
记录
什么是记录呢, 记录是有几个相关值构成的复合变量,常用于支持SELECT语句的返回值
。
使用记录可以将一行数据看成一个单元进行处理, 而不必经没一列单独处理。
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 TYPE STUDENTRECORD IS RECORD(
3 SNO CHAR(8),
4 SNAME VARCHAR2(10)
5 );
6 MYRECODE STUDENTRECORD;
7 BEGIN
8 SELECT S.SNO , S.SNAME INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
9 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
10* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
和表中字段类型相同的记录变量
SQL> L
1 DECLARE
2 TYPE STUDENTRECORD IS RECORD(
3 SNO STUDENT.SNO%TYPE,
4 SNAME STUDENT.SNAME%TYPE
5 );
6 MYRECODE STUDENTRECORD;
7 BEGIN
8 SELECT S.SNO , S.SNAME INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
9 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
10* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
和表结构相同的记录
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 MYRECODE STUDENT%ROWTYPE;
3 BEGIN
4 SELECT * INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
6* END;
SQL> L
1 DECLARE
2 MYRECODE STUDENT%ROWTYPE;
3 BEGIN
4 SELECT * INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
6* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
声明变量X 为VARCHAR2(20)类型 并将X打印在窗口
SQL>
1 DECLARE
2 X VARCHAR2(20);
3 BEGIN
4 X:='THIS IS ....';
5 DBMS_OUTPUT.PUT_LINE('X的值为:'||X);
6* END;
SQL> /
X的值为:THIS IS ....
PL/SQL 过程已成功完。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
标准输出,也就是显示屏上输出。
打开输出就是set serveroutput on or dbms_output.enable(buffer_size in integer default 20000);
关闭输出就是set serveroutput off or dbms_output.disable;
SQL> SET SERVEROUTPUT ON SIZE 10000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> /
X的值为:THIS IS ....
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
保持和执行脚本
SQL> SAVE E:/oracle/plsql_01.sql
已创建 file E:/oracle/plsql_01.sql
SQL> @ E:/oracle/plsql_01.sql
X的值为:THIS IS ....
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
写一个IF THEN ELSIF THEN ELSE END IF
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 A NUMBER;
3 B VARCHAR2(10);
4 BEGIN
5 A:= 2;
6 IF A = 1 THEN
7 B := 'A';
8 ELSIF A = 2 THEN
9 B:='B';
10 ELSE
11 B:='C';
12 END IF;
13 DBMS_OUTPUT.PUT_LINE('B is :'||B);
14* END;
SQL> /
B is :B
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
写一个case的判断
SQL> DECLARE
2 A NUMBER;
3 B VARCHAR2(10);
4 BEGIN
5 A:= 3;
6 CASE
7 WHEN A = 1 THEN B:= 'A=1';
8 WHEN A = 2 THEN B:= 'A=2';
9 WHEN A = 3 THEN B:= 'A=3';
10 ELSE B:='OTHER';
11 END CASE;
12 DBMS_OUTPUT.PUT_LINE('B IS : /N'||B);
13 END;
14 /
B IS : /NA=3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOOP 循环
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 LOOP
6 X:=X+1;
7 IF X>=3 THEN
8 EXIT;
9 END IF;
10 DBMS_OUTPUT.PUT_LINE('IN THE LOOP X= '|| X);
11 END LOOP;
12 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP X=' || X);
13 END;
14 /
IN THE LOOP X= 1
IN THE LOOP X= 2
OUT THE LOOP X=3
PL/SQL 过程已成功完成。
_______________
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 LOOP
6 X:=X+1;
7 EXIT WHEN X>=3;
8 DBMS_OUTPUT.PUT_LINE('IN THE LOOP'||X);
9 END LOOP;
10 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP'||X);
11 END;
12 /
IN THE LOOP1
IN THE LOOP2
OUT THE LOOP3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WHILE循环
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 WHILE X<3 LOOP
6 X:=X+1;
7 DBMS_OUTPUT.PUT_LINE('IN THE LOOP '||X);
8 END LOOP;
9 DBMS_OUTPUT.PUT_LINE('OUT THE LOOP ' ||X);
10 END;
11 /
IN THE LOOP 1
IN THE LOOP 2
IN THE LOOP 3
OUT THE LOOP 3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FOR循环
SQL> BEGIN
2 FOR I IN 1..5 LOOP
3 DBMS_OUTPUT.PUT_LINE('I = '||I);
4 END LOOP ;
5 DBMS_OUTPUT.PUT_LINE('END THE LOOP');
6 END;
7 /
I = 1
I = 2
I = 3
I = 4
I = 5
END THE LOOP
PL/SQL 过程已成功完成。
————————————
SQL> BEGIN
2 FOR I IN REVERSE 1..5 LOOP
3 DBMS_OUTPUT.PUT_LINE('I = '||I);
4 END LOOP;
5 END;
6 /
I = 5
I = 4
I = 3
I = 2
I = 1
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
GOTO语句 用<<标记>>做标记
SQL> DECLARE
2 X NUMBER;
3 BEGIN
4 X:=0;
5 <<REPEATE_LOOP>>
6 X:=X+1;
7 DBMS_OUTPUT.PUT_LINE('X = '||X);
8 IF X<3 THEN
9 GOTO REPEATE_LOOP;
10 END IF ;
11 END;
12 /
X = 1
X = 2
X = 3
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT .....INTO .......
SQL> DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '01062106';
5 DBMS_OUTPUT.PUT_LINE('THE NAME IS '|| TEST);
6 END ;
7 /
THE NAME IS 张故乡
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```````````````````
系统异常NO_DATA_FOUND
SQL> DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '05062233';
5 DBMS_OUTPUT.PUT_LINE('THE SNAME IS ' || TEST);
6 EXCEPTION
7 WHEN NO_DATA_FOUND THEN
8 DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
9 END;
10 /
NO DATA FOUND
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
系统异常
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 TEST VARCHAR2(10);
3 BEGIN
4 SELECT SNAME INTO TEST FROM STUDENT WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('THE SNAME IS ' || TEST);
6 EXCEPTION
7 WHEN NO_DATA_FOUND THEN
8 DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
9* END;
SQL> /
THE SNAME IS 张晔
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~````
自定义异常
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 NAME VARCHAR2(10);
3 E EXCEPTION; --声明变量
4 BEGIN
5 SELECT SNAME INTO NAME FROM STUDENT WHERE SNO = '01062108';
6 IF NAME <> 'CHINA' THEN
7 RAISE E; -----引发异常E
8 END IF;
9 DBMS_OUTPUT.PUT_LINE('NAME IS ' || NAME);
10 EXCEPTION ----------------------
11 WHEN E THEN
12 DBMS_OUTPUT.PUT_LINE('ERROR ');
13* END;
SQL> /
ERROR
PL/SQL 过程已成功完成。
——————————————————
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 NAME VARCHAR2(10);
3 E EXCEPTION;
4 BEGIN
5 SELECT SNAME INTO NAME FROM STUDENT WHERE SNO = '01062108';
6 IF NAME <> '张晔' THEN
7 RAISE E;
8 END IF;
9 DBMS_OUTPUT.PUT_LINE('NAME IS ' || NAME);
10 EXCEPTION
11 WHEN E THEN
12 DBMS_OUTPUT.PUT_LINE('ERROR ');
13* END;
SQL> /
NAME IS 张晔
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
复合变量:
记录
什么是记录呢, 记录是有几个相关值构成的复合变量,常用于支持SELECT语句的返回值
。
使用记录可以将一行数据看成一个单元进行处理, 而不必经没一列单独处理。
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 TYPE STUDENTRECORD IS RECORD(
3 SNO CHAR(8),
4 SNAME VARCHAR2(10)
5 );
6 MYRECODE STUDENTRECORD;
7 BEGIN
8 SELECT S.SNO , S.SNAME INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
9 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
10* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
和表中字段类型相同的记录变量
SQL> L
1 DECLARE
2 TYPE STUDENTRECORD IS RECORD(
3 SNO STUDENT.SNO%TYPE,
4 SNAME STUDENT.SNAME%TYPE
5 );
6 MYRECODE STUDENTRECORD;
7 BEGIN
8 SELECT S.SNO , S.SNAME INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
9 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
10* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
和表结构相同的记录
SQL> EDIT
已写入 file afiedt.buf
1 DECLARE
2 MYRECODE STUDENT%ROWTYPE;
3 BEGIN
4 SELECT * INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
6* END;
SQL> L
1 DECLARE
2 MYRECODE STUDENT%ROWTYPE;
3 BEGIN
4 SELECT * INTO MYRECODE FROM STUDENT S WHERE SNO = '01062108';
5 DBMS_OUTPUT.PUT_LINE('SNAME IS '|| MYRECODE.SNAME ||'SNO IS '|| MYRECODE.SNO);
6* END;
SQL> /
SNAME IS 张晔SNO IS 01062108
PL/SQL 过程已成功完成。
- 笔记081120----PL/SQL
- PL/SQL学习笔记
- PL/SQL学习笔记
- pl/sql 笔记1
- PL/SQL学习笔记
- PL/SQL学习笔记
- PL/SQL学习笔记
- PL/SQL学习笔记
- PL/SQL学习笔记
- PL/SQL学习笔记
- PL/SQL学习笔记
- pl/sql笔记
- PL/SQL 学习笔记!
- PL/SQL 学习笔记!
- PL/SQL学习笔记
- oracle pl/sql笔记
- pl/sql笔记
- PL/SQL视频笔记
- Java定时器Web
- open/execsql
- 获得最近插入的ID:
- 【征集】我们上大学到底为了什么?到底学到了什么?
- 广州FB会之12月5日WebSphere技术专家沙龙广州站
- 笔记081120----PL/SQL
- JDK 配置
- VB取得磁盘文件夹或文件的security
- 重构
- Pet shop的设计模式与体系结构
- Java中如何由枚举常量的ordinal值获得枚举常量对象
- Corporate Portals Empowered with XML and Web Services
- 在这个“寒冬”来临之前,旗忠村拿出了一亿元巨款分给了村民。
- 我需要改变点什么。。。