Ich hatte gerade das Problem, dass ich einen Typ definiert und in TOAD getestet habe und alles in Ordnung war. Aber unter SQL * PLUS warf es einen Fehler.
Beispiel:
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
Aus irgendeinem Grund muss ich hier einen Schrägstrich einfügen
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
/
Für mich ähnelt es einer Create Table-Anweisung, für die kein Schrägstrich erforderlich ist. Ich finde es ziemlich verwirrend. Ich weiß, wie es funktioniert, aber kann jemand erklären, warum diese Entwurfsentscheidung getroffen wurde?
Antworten:
Sie benötigen einen
/
nach einem PL / SQL-Block in SQL * Plus:Dies ist der Grund dafür, dass SQL * Plus weiß, dass Sie mit Ihrer Anweisung fertig sind (einschließlich zwischengeschalteter, nicht terminierender Anweisungen
;
).SQL-Typen können PL / SQL-Code enthalten. Daher haben die SQL * Plus-Entwickler entschieden, dass Sie
/
in allen Fällen nach einem CREATE TYPE Folgendes benötigen :Hinweis :
/
Nachdem Sie eine Prozedur, ein Paket oder einen Paketkörper definiert haben, benötigen Sie (aus dem gleichen Grund) auch ein.quelle