【Tips】使用SQL生成SQL技巧备份表数据

关于“SQL生成SQL”技巧曾经介绍过两次,参考下面的文章。
《【Tips】使用SQL生成外键的SQL创建语句》
http://space.itpub.net/519536/viewspace-625455
《【转义】使用SQL生成SQL语句时单引号的转义处理》
http://space.itpub.net/519536/viewspace-628186

今天使用这个小技术完成表的“备份”,这里的“备份”含义是指根据表的内容生成表的插入语句。

1.创建测试表T,并初始化几条数据
sec@ora10g> create table t (x int, y varchar2(10));
sec@ora10g> insert into t values (1,'HOU');
sec@ora10g> insert into t values (2,'SEC');
sec@ora10g> insert into t values (3,'ANDY');
sec@ora10g> insert into t values (4,'Good');
sec@ora10g> insert into t values (5,'Luck');
sec@ora10g> commit;

2.T表内容如下
sec@ora10g> select * from t;

         X Y
---------- ----------
         1 HOU
         2 SEC
         3 ANDY
         4 Good
         5 Luck

3.简单拼接之后,效果显然。
sec@ora10g> select 'insert into t values (' ||x||','''||y||''');' as "Insert Statements" from t;

Insert Statements
--------------------------------------------------------
insert into t values (1,'HOU');
insert into t values (2,'SEC');
insert into t values (3,'ANDY');
insert into t values (4,'Good');
insert into t values (5,'Luck');

4.小结
“SQL生成SQL”是一个非常实用的小技巧。简单给自己构造一个场景,深入其中体会一番。

Good luck.

secooler
10.03.12

-- The End --

请使用浏览器的分享功能分享到微信等