--===============================
-- SQL 基础--> NEW_VALUE 的使用
--===============================
通常的使用方法为:
column column_name new_value var_name
new_value是将所获得的列值赋予到变量名,然后该变量名可以参与后续处理
下面演示new_value的用法
usr1@ORCL> define length="15" --定义变量length
usr1@ORCL> set feedback off; --查询结束时,没有查询结果的记录数信息
usr1@ORCL> set verify off; --要求执行SQL语句前不显示使用的变量值
usr1@ORCL> create table tb1(old_col varchar2(&&length)); --创建表tb1,列的长度使用变量length定义
usr1@ORCL> create table tb2(new_col varchar2(&&length)); --创建表tb2,列的长度使用变量length定义
usr1@ORCL> insert into tb1 values('Robinson'); --为表tb1插入记录
usr1@ORCL> commit;
usr1@ORCL> col old_value new_value var_value; --定义列值保存到变量var_value
usr1@ORCL> select old_col from tb1; --查看表tb1的列old_col,此时old_col的值将被赋予给变量var_value
OLD_COL
---------------
Robinson
usr1@ORCL> insert into tb2 values('&var_value'); --此处可以使用变量var_value来赋值
usr1@ORCL> select new_col from tb2;
NEW_COL
---------------
Robinson
usr1@ORCL> drop table tb1;
usr1@ORCL> drop table tb2;
--下面是多行记录的处理,变量var_value使用最后获得的值作为变量值
usr1@ORCL> create table tb1(old_col varchar2(&&length));
usr1@ORCL> create table tb2(new_col varchar2(&&length));
usr1@ORCL> insert into tb values('Mark');
usr1@ORCL> insert into tb values('Martin');
usr1@ORCL> col old_value new_value var_value;
usr1@ORCL> select old_value from tb;
OLD_VALUE
---------------
Mark
Martin
usr1@ORCL> insert into tb2 values('&var_value');
usr1@ORCL> select * from tb2;
NEW_VALUE
---------------
Martin
更多参考:
有关闪回特性请参考
Oracle 闪回特性(FLASHBACK DATABASE)
Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN)
Oracle 闪回特性(Flashback Query、Flashback Table)
Oracle 闪回特性(Flashback Version、Flashback Transaction)
有关基于用户管理的备份和备份恢复的概念请参考:
Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)
有关RMAN的恢复与管理请参考:
有关Oracle体系结构请参考:
Oracle 实例和Oracle数据库(Oracle体系结构)
Oracle 联机重做日志文件(ONLINE LOG FILE)