string внутри query

Я создаю package с querys динамика, в который я хочу сделать ему select начиная с параметра ввода Таблица.

Внутри procedure я имею:

querysql varchar2(100);

BEGIN

querysql := 'SELECT RPAD(NVL(description,' '),20,'n') FROM '||Tabla||'';
execute immediate querysql;
commit;
end;

Если он делал select нормального поля. Пример:

querysql := 'SELECT description FROM '||Tabla||'';

не было бы проблемы, но сказав ему, чтобы он наполнил пустое место буквой 'n', он не берет это мне, потому что делается неразбериха с strings.

Я попытался в объявлении изменчивая места и наполнения, чтобы это называть дай querysql как и мы делаем с подмостками, но также не функционируй. Пример:

querysql varchar2(100);
espacio varchar2(1);
relleno varchar2(1);

    BEGIN

    espacio := ' ';
    relleno := 'n';

    querysql := 'SELECT RPAD(NVL(description,' ||espacio|| '),20,'||relleno||') FROM '||Tabla||'';
    execute immediate querysql;
    commit;
    end;

Какое-то решение?

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

1
задан 13.01.2017, 13:56
0 ответов

Чтобы манипулировать кавычками, просто ты должен удваивать их, где он был необходим:

querysql := 'SELECT RPAD(NVL(description,'' ''),20,''n'') FROM ' || Tabla;

Но я скажу тебе, что я не вижу чувство, меня делаю его одним execute immediate querysql; не манипулируя результатами консультации. Я представляю себе то, что говорится только о примере, и что у тебя в действительности есть больше код...

1
ответ дан 03.12.2019, 17:41

Ты можешь использовать функцию CHR (), возврати характер, ассоциируемый с числом, которое ты посылаешь согласно кодированию UTF-8. CHR (34) - двойные кавычки и CHR (39) простая кавычка.

Ты можешь писать твою такую консультацию:

querysql := 'SELECT RPAD(NVL(description,' ||CHR(39)||espacio||CHR(39)||'),20,'||CHR(39)||relleno||CHR(39)||') FROM '||CHR(39)||Tabla||CHR(39)||'';
0
ответ дан 03.12.2019, 17:41