Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1
  • 2

ТЕМА:

Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2688

  • Rita
  • Rita аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Есть такая задача, выбрать из базы данных представления в которых встречается определенное сочетание символов
ну например TP_ID_CCONVERT

Может кто подскажет как это сделать, ибо в таблице, хранящим информацию о представлениях текст представления хранистся в поле LONG
и применить к нему функции (INSTR и т.д.) не применимы
заранее благодарна...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2689

select VIEW_NAME from ALL_VIEWS where VIEW_NAME like '%TP_ID_CCONVERT%'

Так должно сработать, если я правильно задачу понял...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2690

  • Rita
  • Rita аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
К сожалению такой вариант я уже рассматривала...
Символы надо искать именно в самом тексте представления а не в ее названии в поле TEXT
Так что это не подойдет

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2691

Преобразуй LONG в CLOB и ищи по нему через dbms_lob.instr. Пример функции преобразования достаточно часто упоминается, ключевое слово long2lob;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2692

по-моему, можно сделать проще:
declare

  cursor c_views is

    select owner,view_name,text from dba_views;

  v_owner varchar2(30);

  v_view  varchar2(30);

  v_text  varchar2(32000);



begin

  open c_views;

  loop

  fetch c_views into v_owner,v_view,v_text;

   exit when  c_views%notfound ;

    if upper(v_text) like '%TP_ID_CCONVERT%' then

         dbms_output.put_line(v_owner||'.'||v_view);

    end if;      

  end loop;

  close c_views;

end;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: Выбрать сочетание символов в представлении 12 года 9 мес. назад #2693

Создай хранимую функцию:
create or replace function view_instr(p_owner varchar2,p_name varchar2,p_string varchar2) return number is
v_text varchar2(32000);
begin
select text into v_text from all_views where owner=p_owner and view_name=p_name;
return instr(v_text,p_string);
end;
/

А теперь запрос типа
select view_name from all_views where view_instr(owner,view_name,'тра-ля-ля')>0;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.233 секунд