Wie man ein öffentliches Synonym korrekt erstellt

8

Das ist ziemlich dumm, aber ich brauche Hilfe.

Ich habe einen Tisch im Besitz von mydbowner. Es heißt mydbowner.mytable. Ich habe versucht, ein öffentliches Synonym mit dem Befehl:

zu machen

ERSTELLEN ODER ERSETZEN SIE PUBLIC SYNONYM mytable FOR mydbowner.mytable;

Wenn ich das tue und die Tabelle abfrage, bekomme ich:

ORA-01775: Schleifenkette von Synonymen

Wie mache ich dieses Synonym, ohne das Problem zu haben.

    
Joe 24.01.2012, 22:18
quelle

2 Antworten

12

Ich denke, Justin ist auf dem richtigen Weg. Was ich denke, es bedeutet tatsächlich, dass mydbowner.mytable nicht existiert.

Hier ist ein Beispiel:

%Vor%

Ich denke, dass Oracle versucht, meine Tabelle aufzulösen, es gibt keine mytable im mbobak-Schema, also sucht es in PUBLIC, findet es und sieht, dass es auf mbobak.mytable zeigt. Aber, mbobak.mytable existiert nicht, also sucht er nach mytable in PUBLIC, und dort ist die Schleife.

Und tatsächlich, wenn Sie mytable erstellen, verschwindet der Fehler:

%Vor%

Ja, ich realisiere, dass das nicht wirklich einen Sinn ergibt, da, sobald das öffentliche Synonym zu mbobak.mytable aufgelöst wurde, und das nicht gefunden wird, es mir scheint, sollte es einen Fehler ORA-942 "Tabelle oder Sicht zurückgeben existiert nicht ", was für mich viel mehr Sinn macht.

Aber so scheint es zu sein.

QED

Ich hoffe, das hilft.

    
Mark J. Bobak 24.01.2012, 22:45
quelle
6

Der Fehler, den Sie erhalten, impliziert, dass mydbowner.mytable keine Tabelle ist. Was macht

? %Vor%

zurück?

    
Justin Cave 24.01.2012 22:23
quelle