заменить одинарную кавычку на двойную кавычку внутри текста - PullRequest
0 голосов
/ 01 мая 2018

Я вставляю данные CLOB в таблицу. как часть этого я вставляю полную процедуру plsql в столбец clob. Процедура имеет много динамических SQL-операторов. при вставке его метания или ошибка.

пример кода:

insert into t_prc_cmpre( prc_nm,vrsn_nbr,v_CLOB ,envr) 
    (select 'PRC_1','3.7.5',
  'CREATE OR REPLACE PROCEDURE PRC1 
IS

v_sql clob;

BEGIN

v_stmt:='INSERT INTO '||v_targetschema||'.'|| PI_TABLE ||' (COL1,COL2,COL3...)

execute immediate v_stmt;
end;
/'

, так как оператор вставки имеет одинарную кавычку, его нельзя вставлять в столбец clob. Пожалуйста, помогите мне решить проблему.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Простой способ вставить «неуклюжие» данные с помощью синтаксиса «q», например,

insert into t ( c) values ( q'{ This is some text with 'quotes' etc}' );
0 голосов
/ 02 мая 2018

Я не уверен, что вы пытаетесь сделать, и ваш блок не завершен и не будет компилироваться. Но если вы пытаетесь поместить символ внутри varchar или clob, вы вводите его как два, например:

x := 'The cat''s whiskers';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...