1、Boolean型变量可以用some_boolean =TRUE 进行判断,但不推荐;没有进行初始化赋值的Boolean变量值既不是TRUE,也不是FALSE;
在条件判断时用NVL()解决此种情况;
2、IF THEN ELSE END 中使用的AND为连接操作符conjoining,OR为包含操作符include;
3、FOR 循环可以用在numeric、cursor上,但REF CURSOR不支持;
4、FOR LOOP 结构
FOR i IN starting_number..ending_number LOOP
statement;
END LOOP;
5、事务相关
数据操控语言命令(Data Control Language Command)主要有三个:COMMIT,SAVEPOINT,ROLLBACK
Single Transaction Scope
参见下面的例子
BEGIN
-- Set savepoint.
SAVEPOINT new_member;
-- First insert.
INSERT INTO member VALUES
( member_s1.nextval, 1005,'D921-71998','4444-3333-3333-4444', 1006
, 2, SYSDATE, 2, SYSDATE);
-- Second insert.
INSERT INTO contact VALUES
( contact_s1.nextval, member_s1.currval + 1, 1003
,'Bodwin','Jordan',''
, 2, SYSDATE, 2, SYSDATE);
-- Print success message and commit records.
dbms_output.put_line('Both succeeded.');
COMMIT;
EXCEPTION
WHEN others THEN
-- Roll back to savepoint, and raise exception message.
ROLLBACK TO new_member;
dbms_output.put_line(SQLERRM);
END;
SAVEPOINT new_member;
-- First insert.
INSERT INTO member VALUES
( member_s1.nextval, 1005,'D921-71998','4444-3333-3333-4444', 1006
, 2, SYSDATE, 2, SYSDATE);
-- Second insert.
INSERT INTO contact VALUES
( contact_s1.nextval, member_s1.currval + 1, 1003
,'Bodwin','Jordan',''
, 2, SYSDATE, 2, SYSDATE);
-- Print success message and commit records.
dbms_output.put_line('Both succeeded.');
COMMIT;
EXCEPTION
WHEN others THEN
-- Roll back to savepoint, and raise exception message.
ROLLBACK TO new_member;
dbms_output.put_line(SQLERRM);
END;
Multiple Transaction Scopes
只有如下类型的程序才能被设置为Multiple Transaction
Top-level (not nested) anonymous blocks
Local, standalone, package subroutines—functions and procedures
Methods of the SQL object type
Database triggers
Local, standalone, package subroutines—functions and procedures
Methods of the SQL object type
Database triggers
6、trigger的种类(5种)
trigger中不能使用DCL命令