2016-10-12 2 views
0

Diese PL/SQL-Anweisung erwartet:PLS-00103: Fand das Symbol "end-of-file", wenn eine der folgenden

FUNCTION f_comparestring(ps_string1 VARCHAR2, ps_string2 VARCHAR2) RETURN VARCHAR2 IS 
      ps_match VARCHAR2(5); 
     BEGIN 
      IF (ps_string1 = ps_strin2) THEN 
      ps_match := 'TRUE'; 
      ELSE 
      ps_match := 'FALSE'; 
      END IF; 
      RETURN ps_match; 
     END; 

Löst den folgenden Fehler:

PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: begin end function pragma procedure

Ich bin ziemlich ratlos. Dies scheint eine ziemlich einfache Aussage zu sein. Kann jemand helfen?

+0

@a_horse_with_no_name - Ich sah dich den OP Code (in der ursprünglichen Frage) bearbeitet, die Fehler zu korrigieren. Mit diesem Schnitt macht die Frage überhaupt keinen Sinn mehr. Ich habe es zurück in die ursprüngliche Form geändert, damit zukünftige Leser den Code mit Fehlern sehen können (so dass die Frage sinnvoll ist). – mathguy

+0

@mathguy: Ich habe den Code nicht bearbeitet, nur die Tags. Noah hat den Code bearbeitet. –

+0

@a_horse_with_no_name - Oh, ich habe nur deinen Namen für den letzten Schnitt gesehen (seltsam, da es nicht wirklich der letzte war!) Und nicht die ganze Geschichte der Änderungen gelesen. ** NOAH **: Bitte belassen Sie den Code so, wie Sie ihn ursprünglich gepostet haben, sonst wird die Frage bedeutungslos. Mit den darin enthaltenen Fehlern könnte es sich für andere in Zukunft als hilfreich erweisen. Vielen Dank! – mathguy

Antwort

3

Es sollte ps_string2 nicht ps_strin2 in der IF sein. Um eine Funktion zu erstellen, müssen Sie create function

verwenden Sie benötigen auch eine / nach dem PL/SQL-Block. siehe
Einzelheiten: https://stackoverflow.com/a/10207695/330315

So lautet die korrekte Aussage:

CREATE FUNCTION f_comparestring(ps_string1 VARCHAR2, ps_string2 VARCHAR2) RETURN VARCHAR2 IS 
    ps_match VARCHAR2(5); 
BEGIN 
    IF (ps_string1 = ps_string2) THEN 
    ps_match := 'TRUE'; 
    ELSE 
    ps_match := 'FALSE'; 
    END IF; 
    RETURN ps_match; 
END; 
/
+0

Danke @a_horse_with_no_name, aber ist es notwendig, ein 'CREATE' vor' FUNCTION' hinzuzufügen, wenn es in einem Package Body erstellt wird? –

+0

@Noah: Nein, in einem Paket ist es nicht notwendig. Wenn Sie jedoch ein Paket erstellen, müssen Sie uns die gesamte Anweisung für den Paketkörper zeigen. –

Verwandte Themen