10g에서 unpivot사용 1 5 1,094

by 와일드키드 [Oracle 기초] [2019.05.16 16:06:30]


안녕하세요

아래의 11g에서 사용하는 쿼리를 10g이하에서도 사용가능하게 하고싶은데 가능할까요?

 

with dblink as
 (
 select '--as connect '||owner||'; --//you have to connect each schema' owner
        ,to_char(case when owner='PUBLIC' then '--DROP '||OWNER||' DATABASE LINK '||DB_LINK||';' else '--DROP DATABASE LINK '||DB_LINK||';' end) drop_dblink
        ,to_char(replace(dbms_metadata.get_ddl('DB_LINK',db_link,owner),Chr(10),''))||';'  creation_dblink
 from dba_db_links
 )
select replace(x,'"','') from dblink
unpivot ( x for y in (  owner as 'owner', drop_dblink as 'drop_link', creation_dblink as 'creation_dblink'));
 

by 마농 [2019.05.16 17:17:25]
SELECT owner
     , db_link
     , DECODE(lv, 1, 'owner', 2, 'drop_link', 3, 'creation_dblink') y
     , DECODE(lv
       , 1, '--as connect '||owner||'; --//you have to connect each schema'
       , 2, '--DROP '||DECODE(owner, 'PUBLIC', 'PUBLIC')||' DATABASE LINK '||db_link||';'
       , 3, REPLACE(REPLACE(dbms_metadata.get_ddl('DB_LINK', db_link, owner), CHR(10)), '"')||';'
       ) x
  FROM dba_db_links
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 3)
;

 


by 와일드키드 [2019.05.16 17:34:54]

마농님

정말 감사드립니다.


by 와일드키드 [2019.05.16 18:04:16]

마농님 근데요.

제가 원하는 결과가 아니라서요(상차려줘도 못먹나?)

원하는 결과가 아래와 같이 나타났으며 해서요

X

----

--as connect PUBLIC;

--DROP PUBLIC DATABASE LINK  AAA;

  CREATE PUBLIC DATABASE LINK AAA CONNECT TO CIMPROD IDENTIFIED BY VALUES ':1'   USING 'ADB';

--as connect  BBB;

--DROP PUBLIC DATABASE LINK  BBBCC;

  CREATE PUBLIC DATABASE LINK BBBCC CONNECT TO CIMPROD IDENTIFIED BY VALUES ':1'   USING 'BBBCCDB';


by 마농 [2019.05.16 18:45:01]

글쎄요?
원하는 결과만 올리지 마시고...
잘못 나온 결과도 올려서 비교를 해주셔야 알죠?
1. 원하는 컬럼이 한개인데 제 쿼리는 조회컬럼이 여러개라서 문제인가요?
  - 원하는 컬럼만 쓰시면 되요.
2. 혹시 결과가 뒤죽박죽인가요?
  - ORDER BY 구문을 추가하시면 되요.
  - ORDER BY owner, db_link, lv


by 와일드키드 [2019.05.17 14:04:22]

마농님 죄송합니다.

제가 줘도 못먹었습니다.

잘됩니다. 다시한번 감사드립니다. 좋은 하루 되세요

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입