Wie kann ich prüfen, ob, wenn ein Synonym bereits existiert, kein Synonym erstellt wird

8

Ich verwende Oracle SQL Developer 2.1 zum Erstellen eines Synonyms.

%Vor%

Wie kann ich prüfen, ob, wenn dieses Synonym bereits existiert, das Synonym nicht erzeugt wird, wenn es das tut.

    
SOF User 07.05.2012, 07:59
quelle

2 Antworten

20

Da Sie das Schlüsselwort replace verwenden, müssen Sie nicht prüfen, ob das Synonym zuerst existiert. Sie überschreiben das Synonym, das mit dem vorherigen Namen existiert.

Der einzige Grund, vorsichtig zu sein mit replace , ist, wenn Sie ein anderes Synonym mit demselben Namen haben. Wenn Ihre Datenbank gut organisiert ist, sollte dies nicht passieren. Sie sollten immer wissen, was all Ihre Objekte sind und wo die Synonyme zeigen.

Wenn Sie jedoch möchten, gibt es ein paar Optionen:

  1. Entfernen Sie replace . Die Anweisung wird einen Fehler ausgeben, wenn das Synonym bereits existiert und nicht überschrieben wird.
  2. Fragen Sie das Datenwörterbuch ab, da Sie sich in mehreren Schemas befinden all_synonyms scheint die beste Wette zu sein.

    %Vor%

Wenn Sie diese zu einem einzelnen Block kombinieren möchten, können Sie Folgendes tun:

%Vor%

Bitte geben Sie bei einem etwas getrennten nicht Ihre Objektnamen an. Oracle kann Objekte verkapselt haben, aber es ist sehr, sehr selten den Aufwand wert. Alle Objekte werden automatisch im oberen Gehäusebereich angezeigt, so dass Sie das " nicht benötigen.

    
Ben 07.05.2012, 09:44
quelle
0

Ich denke, wenn Sie das OR REPLACE-Schlüsselwort entfernt haben, werden Sie darauf hingewiesen, dass es existiert

Oder Sie können pl / sql-Code mit diesen Tabellen erstellen

%Vor%

Um es flexibler und benutzerdefinierter zu machen

Annahme von Oracle PL / SQL

%Vor%

Hier die Anpassung für Ihr Problem

%Vor%     
shareef 07.05.2012 08:04
quelle

Tags und Links