oracle中字符串与表数据拼接的用法--“||”

时间:2022-03-28 17:21:32

 

    测试过程中,经常需要批量删除或者插入、修改一些表数据或结构,使用手工复制、粘贴其实很麻烦,所以这是我们就可以使用拼接成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'    #注意拼接字符串时要加空格,不然会连接在一起

执行结果如下:

oracle中字符串与表数据拼接的用法--“||”

 

 

示例二,将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测试'

执行结果如下:

oracle中字符串与表数据拼接的用法--“||”

 

特别备注:

1、特别注意,字符串只能用单引号“'”,不能使用双引号
2、如果查询出的表字段要以字符串出入新的字段,不能直接加单引号',需要加2个单引号''进行转译

 

 

参考博客:https://www.cnblogs.com/chinhr/archive/2011/11/14/2248221.html