Oracle基础学习笔记(五) (PL/SQL)

IF condition THEN

ELSIF condition THEN

ELSE

END IF;

 

LOOP

    ...

   CONTINUE;

   CONTINUE WHEN ...

   EXIT;

   EXIT WHEN ...

END LOOP

 

WHILE condition LOOP

END LOOP;

 

FOR var IN [REVERSE] 1..5 LOOP

END LOOP;

 

CURSOR cursor_name IS select_statement;

OPEN cursor_name; (the query isn't executed until you open the cursor)

LOOP

FETCH cursor_name INTO variable [, variable, ...];

EXIT WHEN cursor_name%NOTFOUND;

END LOOP;

CLOSE cursor_name;

 

FOR var IN cursor_name LOOP

END LOOP;

 

Constrainted Cursors

TYPE t_product_cursor IS REF CURSOR RETURN products%ROWTYPE;

v_product_cursor t_product_cursor;

OPEN v_product_cursor FOR

SELECT * FROM products WHERE id<5;

CLOSE v_product_cursor;

 

Unconstrainted Cursors

TYPE t_cursor IS REF CURSOR;

v_cursor t_cursor;

OPEN v_cursor FOR

SELECT * FROM products WHERE id<5;

 

OPEN v_cursor FOR

SELECT * FROM customers WHERE id<5;

CLOSE v_cursor;

 

 

CALL proc_name (var1,  var2);

CALL proc_name(var1_name=>var1, var2_name=>var2); (new feature in 11g)

SHOW ERRORS;

 

Triggers

A trigger may fire before of after a DML statement runs.

it can be a row-level trigger or for all the rows(statement-level trigger).

 

CREATE [OR REPLACE] TRIGGER trigger_name

{BEFORE | AFTER | INSTEAD OF | FOR} trigger_event

ON table_name

[FOR EACH ROW]

[{FORWARD | REVERSE} CROSSEDITION]

[{FOLLOWS | PRECEDES} chema.other_trigger]

[{ENABLE | DISABLE}]

[WHEN trigger_condition]

BEGIN

  trigger_body

END;

 

ALTER TRIGGER trigger_name DISABLE;

ALTER TRIGGER trigger_name ENABLE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值