Имя: Пароль:
1C
 
Oracle & anonymous block completed
0 ig0z
 
08.08.17
23:19
Для поиска данных в БД взял код, выполнение которого привело к успешному выполнению, хотя бы без ошибок но посмотреть его я не могу т.к. результат мне anonymous block completed
Интернет советует добавить SET SERVEROUTPUT ON но это не помогло ... . Как узнать что там нашёл?

DECLARE
  match_count   INTEGER;
  query_str     VARCHAR2(400);
  l_owner       VARCHAR2(10)  := 'ADMR';
  l_search_text VARCHAR2(100) := 'Документ';
BEGIN
  FOR t IN (select table_name, column_name FROM all_tab_columns a
            where owner = l_owner
                  and a.data_type in ('NUMBER', 'VARCHAR2')
            )
  LOOP
    begin
      match_count := 0;
      query_str   := 'SELECT COUNT(*) FROM ' ||l_owner||'.'|| t.table_name ||
                     ' WHERE to_char(' || t.column_name || ') = :1';
      EXECUTE IMMEDIATE query_str
        INTO match_count
        USING l_search_text;
      IF match_count > 0 THEN
        dbms_output.put_line(l_owner||'.'||t.table_name || ' ' || t.column_name || ' ' || match_count);
        dbms_output.put_line('  SELECT t.'|| t.column_name || ', t.* from '||l_owner||'.'|| t.table_name||' t where to_char(' || t.column_name || ') = '''||l_search_text||'''');
        dbms_output.put_line('');
      END IF;
    exception
     when others then
       dbms_output.put_line(t.table_name||'.'||t.column_name||' : '||SQLERRM||' : '||SQLCODE);
       dbms_output.put_line(query_str);
       dbms_output.put_line('');
       /*raise*/
    end;
  END LOOP;
END;
1 Имитация работы
 
09.08.17
06:36
Гм. А выполнял ты его на обрывке бумажке чернильным карандашом?