Oracle SQL 开发人员 - 用引号和逗号包围文本列表的最简单方法是什么?

Oracle SQL developer - What is the easiest way to surround a list of texts with quotes and commas?

举个例子。我得到如下列表


99X2H19JBF11534
16B4H5FHCA12592
ABE4H5FHAA08646
SE0753207527
PAK810869145
PAK810714143
PAK810547887
PAK810340854
PAK820090918

然后我在 excel 中使用连接(并用引号和逗号括起列表)到 运行 查询,如下面的 Oracle SQL Developer。

select * from admin.repair

where repair_nbr in (

'99X2H19JBF11534',
'16B4H5FHCA12592',
'ABE4H5FHAA08646',
'SE0753207527',
'PAK810869145',
'PAK810714143',
'PAK810547887',
'PAK810340854',
'PAK820090918');

我想知道其他人是否有更简单的方法在 Oracle SQL 开发人员中用引号和逗号包围列表。

假设您使用查询得到列表

select val from your_table order by whatever

将您的查询更改为

select 'select * from admin.repair where repair_nbr in ('
       || listagg('''' || val || '''', ',
' order by whatever)
       || ');'
from your_table

辅助查询的结果就是您需要的查询。

注意:如果连接的结果太长,您可能会得到 ORA-01489,但它是不同的 - 但仍然可以解决 - 故事(然后寻找 xmlagg 函数)。

如果您通过查询获得列表,只需拖放即可。

我们不仅会引用字符串,还会为您用逗号分隔它们。

如果你只有文字,SQL开发者也支持块编辑。在“编辑”菜单上启用它,然后只需使用向下箭头浏览每个 line/curpos 和 select,然后粘贴引号。

或者如果您是正则表达式的粉丝,搜索和替换 (ctrl+R) 面板有一个正则表达式模式,您可以打开它。

免责声明:我是 Oracle SQL 开发人员的产品经理。