从前端,用户将输入(多个)员工编号作为(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')