Announcement

Collapse
No announcement yet.

Ein Select über zwei Datenbanken?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ein Select über zwei Datenbanken?

    Hallo zusammen

    Weiss jemand ob man in Oracle über zwei verschiedene Datenbanken (z.B. Production_Bank1 und Production_Bank2) eine Query machen kann? Wenn ja wie müsste diese dann aussehen und auf welcher DB müsste ich diese dann absetzen (Prod_Bank1 oder Prod_Bank2)?
    Gibt es irgendwelche Berechtigungsprobleme, welche ich vielleicht im Vorfeld beachten müsste? Ich nutze Oracle SQL Developer 3.0.02.

    So weit ich weiss kann man auch pro DB je eine Query machen und diese dann exportieren und dann neu mit einem neuen Primär-Schlüssel vergeben. Aber ich möchte dieses Prozedere umgehen und direkt die verschiedenen DB's ansprechen.

    Geht das?

    grz bullfrog

  • #2
    Originally posted by bullfrog78 View Post
    Hallo zusammen

    Weiss jemand ob man in Oracle über zwei verschiedene Datenbanken (z.B. Production_Bank1 und Production_Bank2) eine Query machen kann?
    Geht das?

    grz bullfrog
    Hi,

    du kannst über DB-Links gehen.
    deine DBA's müssten dir nur die Datenbanken untereinander bekannt machen (Eintrag in der TNS-Names).

    dann kannst du dir einen DB-Link auf der einen DB anlegen, welcher auf die andere "guckt". und umgekehrt.

    das Statement führst du dann auf der DB aus die den DB-Link eingerichtet hat.

    greetz

    jogi

    Comment


    • #3
      Herzlichen Dank!

      Momentan sind wir am knobeln wie wir diesen Link zum funktionieren bekommen. Wir nutzen TNSNAMES.ora. Der Link wird erstellt:

      CREATE DATABASE LINK name
      CONNECT TO admin IDENTIFIED BY admin
      USING name.bla.dom;

      database link name created.

      doch der Test schlägt fehl. Immer dieser ORA-12154 Error. Wir sind am verzweifeln...
      Wir haben TNSNAMES.ora auch schon auf die nur noch benötigen User abgespeckt. Reboot. Hat auch nichts genützt.
      Zudem haben wir gesehen, dass die Linkerstellung auf gleichen Servern funktioniert, doch sobald ein Link serverübergreifend gemacht werden soll, schlägt der Link fehl. ->ORA-12154. iist das normal so?

      Habt Ihr vielleicht noch Ideen?

      gruss bullfrog

      Comment


      • #4
        Hat der Server, der den Link bereitstellen soll die nötigen Einträge in SEINER TNSNAMES.ora?
        Viel Erfolg!

        Comment


        • #5
          vielen Dank! Das wird der Schlüssel des Problems sein. Wusste gar nicht, dass jeder Server auch noch ein separates TNSNAMES.ora führt.

          Muchas Gracias!
          bullfrog

          Comment


          • #6
            Oder Du machst es über die direktangabe des Servers. Ich hab mir im Rahmen eines anderen Programms dafür eine Procedur geschrieben:
            Code:
            CREATE OR REPLACE PROCEDURE createDBLink(p_name VARCHAR2, p_host VARCHAR2,p_sid VARCHAR2,p_schema VARCHAR2,p_pwd VARCHAR2) IS
             BEGIN
               EXECUTE IMMEDIATE 'CREATE DATABASE LINK '||p_name ||
                                 ' CONNECT TO '||p_schema        ||
                                 ' IDENTIFIED BY '||p_pwd        ||
                                 ' USING ''(DESCRIPTION = '      ||
                                 ' (ADDRESS_LIST = '             ||
                                 ' (ADDRESS = (PROTOCOL = TCP)(HOST = '||p_host||')(PORT = 1521)) ) '||
                                 ' (CONNECT_DATA =(SERVICE_NAME = '||p_sid||')))''';
               EXCEPTION WHEN OTHERS THEN
                   RAISE_APPLICATION_ERROR(-20004,'Fehler beim Anlegen des Databaselink '||p_name||' für '||p_host||': '||SQLERRM);
             END;
            /
            Dim
            Zitat Tom Kyte:
            I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

            Comment


            • #7
              Vielen Dank @dimitri, diese Möglichkeit war mir neu!

              Comment

              Working...
              X