The following can be used to create a script for DB Links with work on 8i/9i and will contain the password but not in 10g. The SQL script for creating the DB Link would need to be run the user who owns the DB Link if it’s not a PUBLIC.

SELECT 'create '||DECODE(U.NAME,'PUBLIC','public ')||'database link '||CHR(10)
||DECODE(U.NAME,'PUBLIC',Null, U.NAME||'.')|| L.NAME||chr(10)
||'connect to ' || L.USERID || ' identified by '
||L.PASSWORD||' using ''' || L.host || ''''
||chr(10)||';' TEXT
FROM sys.link$ L, sys.user$ U
WHERE L.OWNER# = U.USER#;

4 responses to “Creation SQL script for DB Link within a database”

  1. Rajeev Avatar
    Rajeev

    What can we do for Oracle 10g and 11g?

    Like

  2. Tomasz Avatar
    Tomasz

    select dbms_metadata.get_ddl(‘DB_LINK’, ‘DBLINKNAME’, ‘OWNER’) from dual;

    select dbms_metadata.get_ddl(‘DB_LINK’, ‘DBLINKNAME’, ‘PUBLIC’) from dual;

    Like

  3. guest Avatar
    guest

    or, try ‘hash values’:
    SELECT ‘create ‘||DECODE(U.NAME,’PUBLIC’,’public ‘)||’database link ‘||CHR(10)
    ||DECODE(U.NAME,’PUBLIC’,Null, U.NAME||’.’)|| L.NAME||chr(10)
    ||’connect to ‘ || L.USERID || ‘ identified by values ”’
    ||L.PASSWORDX||”’ using ”’ || L.host || ””
    ||chr(10)||’;’ TEXT
    FROM sys.link$ L, sys.user$ U
    WHERE L.OWNER# = U.USER#;

    Like

  4. enikiasis kafon

    Creation SQL script for DB Link within a database « Oracle Spin – Flimatech Blog

    Like

Leave a reply to Rajeev Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.