Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Достать код вьюшки  [new]
Существует
Guest
Можно откуда-то еще, кроме как из all_views достать полайново код вьюшки?
28 июн 12, 11:42    [12787608]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Камрад Существует, можешь пользовать пакет DBMS_METADATA
28 июн 12, 11:52    [12787706]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Существует
Guest
Попробовал get_ddl, но больше 4000 симв не достать же )
28 июн 12, 12:15    [12787858]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Maxim Demenko
Member

Откуда: Munich, Germany
Сообщений: 940
Существует,

RTFM set long

Best regards

Maxim
28 июн 12, 12:20    [12787890]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Камрад Существует, пользуй SQL*Plus

SELECT owner, view_name, text_length
FROM dba_views 
WHERE owner = 'SYS'
  AND view_name = 'DBA_STREAMS_COLUMNS';

OWNER                          VIEW_NAME                      TEXT_LENGTH
------------------------------ ------------------------------ -----------
SYS                            DBA_STREAMS_COLUMNS                  36331


Запиши в файл VIEW_LONG_TEXT.sql примерно такое:
SET LONG 1000000;
SET TRIMSPOOL ON;
SET TRIMOUT ON;
SET LINESIZE 4000;
SET PAGESIZE 0;
SET TERMOUT OFF;
SET ECHO OFF;
SPOOL VIEW_LONG_TEXT.lst
SELECT 'CREATE VIEW "'||owner||'"."'||view_name||'" AS' 
FROM dba_views
WHERE owner = 'SYS'
  AND view_name = 'DBA_STREAMS_COLUMNS';
SELECT text FROM dba_views
WHERE owner = 'SYS'
  AND view_name = 'DBA_STREAMS_COLUMNS';
SPOOL OFF;
EXIT;

выполни через SQL*Plus
sqlplus user/pwd@dbalias @VIEW_LONG_TEXT.sql
Результат смотри в файле VIEW_LONG_TEXT.lst

Вот такой еще есть вариант, камрад.
28 июн 12, 12:40    [12788020]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
pectopatop
Member

Откуда:
Сообщений: 765
Изя Кацман
Камрад
Диссидент?
28 июн 12, 13:55    [12788602]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Братья, Великие классики совреме
Guest
pectopatop
Изя Кацман
Камрад
Диссидент?
Нас не читал?
28 июн 12, 14:26    [12788875]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
elcaro10g
Member

Откуда:
Сообщений: 93
Существует
Попробовал get_ddl, но больше 4000 симв не достать же )


Ну как бы 4k это для sql ,Для pl\sql -32k
Может это не тот случай, но в своих скриптах лонг спокойно читаю\вывожу\пишу через что-то подобное.
Если вьюха длиненее 32 к - тож без проблем через pl\sql - но уже со временными таблами.
declare
v_tmp long;
begin
dbms_output.enable(32000);
select text into l_tmp from dba_views where owner='user' and view_name='some_view';
dbms_output.put_line(v_tmp);
end;
28 июн 12, 18:17    [12790489]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
pectopatop
Изя Кацман
Камрад
Диссидент?
А почему вы спрашиваете?
28 июн 12, 18:33    [12790563]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Существует
Попробовал get_ddl, но больше 4000 симв не достать же )

ну что вы говорите?
и больше 4000, да и построчно - никаких проблем.
set serveroutput on
declare
  a_0 CLOB;
  a_1 VARCHAR2(30);
  a_2 VARCHAR2(30);
  a_3 VARCHAR2(30);
  i1 number;
  i2 number := 0;
begin
  dbms_output.enable(null);

  a_3 := 'SYS';
  a_1 := 'VIEW';
  a_2 := 'DBA_STREAMS_COLUMNS';
  a_0 := dbms_metadata.get_ddl
    (schema      => a_3
    ,object_type => a_1
    ,name        => a_2)
    ||chr(10);
  for i in 1..1e5 loop
    i1 := i2+1;
    i2 := dbms_lob.instr(a_0,chr(10),i1);
    exit when i2=0;
    dbms_output.put_line( dbms_lob.substr(a_0,i2-i1,i1) );
  end loop;
end;
/
28 июн 12, 19:20    [12790693]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
pectopatop
Member

Откуда:
Сообщений: 765
Изя Кацман
А почему вы спрашиваете?

Надо не так. Надо: "А пачиму ви спгашиваете? Камрад - типичное название советских Товарищей на территории USA в перестроечные времена"
29 июн 12, 09:19    [12792429]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
pectopatop
Изя Кацман
А почему вы спрашиваете?

Надо не так. Надо: "А пачиму ви спгашиваете? Камрад - типичное название советских Товарищей на территории USA в перестроечные времена"
А зачем вы спрашиваете?
29 июн 12, 09:55    [12792620]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
pectopatop
Member

Откуда:
Сообщений: 765
Братья, Великие классики совреме
Нас не читал?
абСтруагацкие романы не очень уважаю.

И вообще -
Изя Кацман
А зачем ви спгашиваете?
29 июн 12, 10:14    [12792736]     Ответить | Цитировать Сообщить модератору
 Re: Достать код вьюшки  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
pectopatop
И вообще -
Изя Кацман
А зачем ви спгашиваете?
А я должен давать ответы на вопросы неясного содержания неизвестно кому? :)
29 июн 12, 11:13    [12793185]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить