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

执行结果如下:

596fa449bcca0e04c46609e98af2eaa1.png

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

执行结果如下:

5ceb4478a10c3c000edc442105ed7f97.png

特别备注:

1、特别注意,字符串只能用单引号“'”,不能使用双引号

2、如果查询出的表字段要以字符串出入新的字段,不能直接加单引号',需要加2个单引号''进行转译

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐