J'ai juste eu le problème de définir un type et de le tester dans TOAD et tout allait bien. Mais fonctionnant sous SQL * PLUS, il a généré une erreur.
Exemple:
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
Pour une raison quelconque, je dois ajouter une barre oblique ici
CREATE OR REPLACE TYPE MyType AS OBJECT (
Item1 NUMBER,
Item2 NUMBER
);
/
Pour moi, cela ressemble à une instruction Create Table, qui ne nécessite pas de barre oblique. Je trouve cela assez déroutant. Je sais comment cela fonctionne, mais quelqu'un peut-il expliquer pourquoi cette décision de conception a été prise?
Réponses:
vous avez besoin d'un
/
après un bloc PL / SQL dans SQL * Plus:C'est ainsi que SQL * Plus sait que vous en avez terminé avec votre instruction (qui peut inclure des éléments intermédiaires sans terminaison
;
).Les types SQL peuvent inclure du code PL / SQL, par conséquent, les développeurs SQL * Plus ont décidé que vous avez besoin d'un
/
dans tous les cas après un CREATE TYPE:Remarque : vous avez également besoin d'un
/
après avoir défini une procédure, un package ou un corps de package (pour la même raison).la source