PLS-00103: het symbool “Create”

Wat is het probleem met dit pakket omdat het een fout geeft?

CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);
END PKG_SHOW_CUST_DETAILS;
CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)
    IS
    BEGIN
        DBMS_OUTPUT.PUT_LINE(myArg);        
    END SHOW_CUST_DETAILS;
END PKG_SHOW_CUST_DETAILS;
/

Aan de compilatie van het bovenstaande script krijg ik de volgende fouten:

SQL & GT; Toon fouten
Fouten voor Pakket PKG_SHOW_CUST_DETAILS:
LINE / COL-fout
----------------------------------------------------- ------------------------
6/1 PLS-00103: het symbool "Create" aangetroffen

Het pakket is heel eenvoudig en ik kan het niet compileren. Ik heb eerdere antwoorden op deze foutmelding doorzocht en geen van hen lost mijn probleem op.
Ik krijg consequent deze foutmelding voor nog 2 extra pakketten en ik zit vast op deze foutmelding, ongeacht wat ik doe. Ik heb zelfs geprobeerd om alles te strippen naar het uiterste bars, zoals hierboven getoond, maar het foutbericht lijkt niet weg te gaan.
BTW Ik voer dit op opdrachtregel SQL PLUS-sessie na het inloggen op mijn database van Oracle 11G.
Ja-Set Serveroutput On – wordt uitgevoerd en het foutbericht heeft niets met deze opdracht te maken.

Wat ben ik mis?


Antwoord 1, Autoriteit 100%

Op regel 5 is er een /ontbreekt.

Er is een goed antwoord op de verschillen tussen ;en /hier .

Kortom, als u een CREATE-blok via script uitvoert, moet u /gebruiken om SQLPlus te laten weten wanneer het blok eindigt, aangezien een PL/SQL-blok veel exemplaren van ;.


Antwoord 2, autoriteit 2%

Voor mij / moest in een nieuwe regel.

Bijvoorbeeld

create type emp_t;/

werkte niet

maar

create type emp_t;

/

werkte.


Antwoord 3

In mijn geval werkt EXECUTE IMMEDIATE ('CREATE TABLE ...')bijvoorbeeld:

DECLARE 
   myVar INT;
BEGIN
SELECT 2 INTO myVar FROM dual;
IF myVar > 1 THEN
    EXECUTE IMMEDIATE('Create Global Temporary Table TestTemp ( id VARCHAR2(2) ) ON COMMIT PRESERVE ROWS');
END IF;
END;

Verwijzing naar Tabel maken zoals binnen PL/SQL?


Antwoord 4

Voer pakketaangifte en hoofdtekst afzonderlijk uit.

Other episodes