Właśnie miałem problem ze zdefiniowaniem typu i przetestowaniem go w TOAD i wszystko było w porządku. Ale działający pod SQL * PLUS spowodował błąd.
Przykład:
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
Z jakiegoś powodu muszę tutaj dodać ukośnik
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
/
Dla mnie wygląda podobnie do instrukcji Create Table, która nie wymaga ukośnika. Uważam to za dość mylące. Wiem, jak to działa, ale czy ktoś może wyjaśnić, dlaczego podjęto tę decyzję dotyczącą projektu?
Odpowiedzi:
potrzebujesz
/
po bloku PL / SQL w SQL * Plus:Jest to tak, że SQL * Plus wie, że skończyłeś z instrukcją (która może obejmować pośrednie, nie kończące się
;
).Typy SQL mogą zawierać kod PL / SQL, dlatego deweloperzy SQL * Plus zdecydowali, że będziesz potrzebować
/
we wszystkich przypadkach po CREATE TYPE:Uwaga : potrzebujesz również
/
po zdefiniowaniu procedury, pakietu lub treści opakowania (z tego samego powodu).źródło