Oracle экранируем кавычки или Волшебный Ку Q Печать E-mail
Рейтинг: / 14
ХудшаяЛучшая 

Oracle экранируем кавычки или Волшебный Ку

В Oracle операторах, в которых требуется передача запроса в качестве текстовой строки

иногда в тексте sql строки требуется передать символ кавычек

 обычно это взывает недоумение интерпретатора запросов oracle

 для этого используется оператор Oracle q

 рассмотрим несколько примеров

 например фраза I'm О’Коннор

  скрипт

   SET serveroutput ON

   begin

     DBMS_OUTPUT.PUT_LINE('I'm О’Коннор');

   end;'

вызовет ошибку

для корректного выполнения можно написать следущее

    SET serveroutput ON

    begin

      DBMS_OUTPUT.PUT_LINE('I''m О''Коннор');

    end;

но в большиз сложных зaпросах с большим кол вом текстовх выражений

логичнее было бы использовать оператор экранирования кавычек Q

BEGIN

  dbms_output.put_line(q'[I'm О'Коннор]');

END;

 

 

 приведем так же некоторые другие интересные примеры

select DBMS_XMLGEN.getxml (q'[select count(ao.OBJECT_TYPE) countOBject, ao.OBJECT_TYPE OT , max(ao.CREATED) maxdtcr

     from all_objects ao where owner='SYS' group by OBJECT_TYPE order by OBJECT_TYPE]') myxml from dual;

execute immediate(q'[insert into q values('qwerty')]')

 

 

Комментарии  

  1. #2 stozaycev
    2014-12-0114:27:13 Спасибо. Пригодилось. А то мучился со своей базой)
  2. #1 Иван
    2014-03-1412:43:12 Здорово! Спасибо! Не знал

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Защитный код
Обновить

« Пред.   След. »