您的位置:首页 > 数据库 > Oracle

修改表的内容-RETURNING/DEFAULT/MERGE/时间查询闪回/系统变更号查询闪回

2015-02-01 10:40 281 查看
returning子句:返回使用聚合函数计算的结果

VARIABLE average_product_price NUMBER

UPDATE products

SET price = price * 0.75

RETURNING AVG(price) INTO :average_product_price;

为列定义默认值:

CREATE TABLE  order_status (

order_status_id INTEGER

CONSTRAINT default_example_pk PRIMARY KEY,

status VARCHAR2(20) DEFAULT ' Order placed' NOT NULL,

last_modified DATE DEFAULT SYSDATE);

使用MERGE合并行:

MERGE INTO products p

USING product_changes pc ON (

p.product_id = pc.product_id

)

WHEN MATCHED THEN

UPDATE

SET

p.product_type_id = pc.product_type_id,

p.name = pc.name,

p.description = pc.description,

p.price = pc.price

WHEN NOT MATCHED THEN

INSERT (p.product_id,p.product_type_id,p.name,p.description,p.price)

VALUES (pc.product_id.pc.product_type_id,pc.name,pc.description,p.price);

时间查询闪回

EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(SYSDATE - 10 / 1440)  查询显示十分钟之前的状态。

EXECUTE DBMS_FLASHBACK.DISABLE();  禁用闪回操作。

系统变更号(SCN)查询闪回

VARIABLE current_scn NUMBER

EXECUTE :current_scn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER(); 获取当前SCN

闪回到SCN状态:

EXECUTE DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER(:current_scn);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息