0
ALERT
ALERTING_TRANSACTION
ALERTING_TRANSACTION_LINK
ALERT_ACTION_LOG
ALERT_ALERT
ALERT_ASSIGNMENT
ALERT_CASE
ALERT_CUSTOMER
ALERT_DOCUMENT
ALERT_EXT
ALERT_MATCH
ALERT_MATCH_DATA
ALERT_RESTRICTION
ALERT_STATUS
ALERT_TRANSACTION
A_ALERT
A_ALERTING_TRANSACTION
A_ALERT_ACTION_LOG
A_ALERT_ASSIGNMENT
A_ALERT_CASE
A_ALERT_MATCH
A_ALERT_MATCH_DATA
AUDIT_LOGS
CASES
CASE_ACTION_LOG
CASE_CUSTOMER
CASE_DIARY
CASE_DOCUMENT
CASE_EXT
CASE_NARRATIVE
CASE_TRANSACTION
CHANNEL_SUBSCRIPTIONS
COUNTRY
CURRENCY
CUSTOMERS
CUSTOMERS_RANGE
CUSTOMER_AUDIT_LOG
CUSTOMER_PROFILE
CUSTOMER_STATUSES
CUSTOM_TRANSACTION_FIELD
DF_ACCOUNT
DF_ACTIVITY_TYPE
DF_ASSISTANCE_CONTACT
DF_AUTH_SIGN_PART
DF_CHECKBOX_FINTRAC
DF_CUSTOMER
DF_DISC
DF_DISCLOSURE_AUSTRAC_SMR
DF_DISCLOSURE_CANFINTRAC_31
DF_DISCLOSURE_LUXEMBOURGSTR
DF_DISCLOSURE_USFINCEN_109
DF_DISC_TYPE
DF_DISC_VERSION
DF_EFILE_BATCH
DF_FINTRAC_INSTITUTE
DF_HONGKONG_INSTITUTION
DF_INSTITUTION_AUSTRAC
DF_LAW_ENFORCEMENT_AGENCY
DF_NARRATIVE
DF_REGULATORY_CONTACT

我在一个文本文件中有这些记录。我想写一个查询

SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME NOT IN ('ALERT','ALERTING_TRANSACTION',.....,'DF_REGULATORY_CONTACT')

谁能告诉我如何在每个表名周围添加 '' 并在 IN OPERATOR 中用 分隔 table_names,因为表列表非常长。

4

2 回答 2

2

使用您最喜欢的文本编辑器将行开始(正则表达式中的 ^)替换为 ',将行结束(正则表达式中的 $)替换为 ',。去掉最后一个 ,你就有了一个放在 ( ) 里面的列表。

编辑

如果你最喜欢的文本编辑器不支持正则表达式,那就买一个支持的。即使您继续使用您最喜欢的不支持正则表达式的文本编辑器进行日常文本编辑,它也会成为您工具列表的一个很好的补充(对于这样的一次)。

于 2011-11-14T17:41:09.230 回答
2

如果您在文本文件中有该表列表,您可能会发现将文本文件加载到临时表中并更改 IN 语句以使用子查询引用这些值更容易。

如果您只想快速构建 IN 字符串,可以使用正则表达式添加分隔符。

像替换\n',\n'

于 2011-11-14T17:42:28.300 回答