У меня просто была проблема, что я определил тип и проверил его в TOAD, и все было в порядке. Но при работе под SQL * PLUS это выдало ошибку.
Пример:
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
По какой-то причине я должен добавить слеш здесь
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
/
Для меня это похоже на оператор Create Table, который не требует косой черты. Я нахожу это довольно запутанным. Я знаю, как это работает, но кто-нибудь может объяснить, почему было принято это дизайнерское решение?
Ответы:
вам нужно
/
после PL / SQL блока в SQL * Plus:Это так, что SQL * Plus знает, что вы закончили с вашим оператором (который может включать промежуточный, не завершающий
;
).Типы SQL могут включать код PL / SQL, поэтому разработчики SQL * Plus решили, что вам нужно
/
во всех случаях после CREATE TYPE:Примечание : вам также понадобится
/
после определения процедуры, пакета или тела пакета (по той же причине).источник