测试过程中,经常需要批量删除或者插入、修改一些表数据或结构,使用手工复制、粘贴其实很麻烦,所以这是我们就可以使用拼接成sql语句的方法来实现操作数据。下面先讲讲oracle中拼接符 || 的用法,如下:
语法如下:
select " "||table.values||" " from tablename where ...
其中引号内的是需要拼接的字符串
示例一,清除某所有表的表数据:
1、我们知道,oracle是带有一些自带的系统表的,如dba_tables,里面包含有oracle的所有表及所属用户,这样我们就可以拼接删除所有表数据的sql了,然后复制出sql执行就可以了。
语法
select 'delete from '||tb.TABLE_NAME||';' from dba_tables tb where tb.OWNER='IOS_BJ' #注意拼接字符串时要加空格,不然会连接在一起
执行结果如下:
示例二,将2个表之间的关联关系插入第三个表,拼接成 insert into tablename values(parameter,parameter2.....)
select 'insert into SMBH_KEFU_WARNING_10019_qx values("' || mm.user_id || '","' ||
(kk.sub4_id || '@' || kk.sub6_id || '@' || kk.eventlevel) || '");' 用户与事件关联关系sql
from smbh_kefu_warning_10019 mm, SMBH_KEFU_EVENT_10019 kk
where mm.cities in ('越秀区', '天河区') and kk.eventname = 'test测试'
执行结果如下:
特别备注:
1、特别注意,字符串只能用单引号“'”,不能使用双引号
2、如果查询出的表字段要以字符串出入新的字段,不能直接加单引号',需要加2个单引号''进行转译
参考博客:https://www.cnblogs.com/chinhr/archive/2011/11/14/2248221.html