从前端,用户将输入(多个)员工编号作为(123,456,789)在应用程序中进行搜索。用户输入
员工编号是如上所述的预定义。

必须在PL / SQL软件包的Oracle数据库表中搜索此值。

我已经进行了如下编码,以格式化输入的值,以便可以在SQL WHERE条件下对其进行搜索。

lv_where := REPLACE( REPLACE(  REPLACE( '(123,456,789)', ',', ''',''' ), '(', '(''') , ')', ''')')

输出为:('123','456','789')
有没有更好的办法?

最佳答案

你可以使用 regexp_replace

regexp_replace('(123,456,789)','([[:digit:]]+)','''\1''')
Result:
('123','456','789')

09-26 20:01