Oracle заменит строку внутри CLOB на sql в качестве значения - PullRequest
0 голосов
/ 12 марта 2019

У меня есть таблица с типом данных CLOB со сценарием SQL в качестве значения.Я хочу заменить строку внутри значения скрипта sql.Пожалуйста, ознакомьтесь с приведенным ниже сценарием, который я хотел бы узнать:

У меня есть таблица с именем TEST со столбцами NAME, DEPT_SQL со значением ниже в таблице:

DEPT_SQL

SELECT * FROM DEPT WHERE DEPT_NAME IN('SALES','MARKETING','FINANCE','IT')

Теперь я хотел бы заменить значение 'SALES' многими значениями 'TODAY_SALES','WEEK_SALES','MONTH_SALES' внутри значения столбца сценария sql.

Может ли кто-нибудь помочь мнезнаете о замене одного строкового значения множественными строковыми значениями?

Я попробовал следующий подход, но он дает правильную строку для замены:

SELECT name, to_clob(replace(dept_sql,'SALES','TODAY_SALES, WEEK_SALES, MONTH_SALES')) as sql
from test
where sql like '%SALES%' and name='CLOSE'

Заранее спасибо.

1 Ответ

1 голос
/ 12 марта 2019

Вашу замену можно упростить с помощью альтернативного механизма цитирования (с использованием q) для котировок

SELECT replace(dept_sql, q'{'SALES'}', 
       q'{'TODAY_SALES','WEEK_SALES','MONTH_SALES'}') as sql
FROM   test;

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...