此PL/SQL语句:

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;

引发以下错误:



我很茫然。这似乎是一个相当简单的声明。有人可以帮忙吗?

最佳答案

它应该是ps_string2而不是ps_strin2中的IF。要创建功能,您需要使用create function
在PL/SQL块之后,您还需要一个/
有关详细信息,请参见:https://stackoverflow.com/a/10207695/330315

因此正确的陈述是:

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;
/

关于oracle - PLS-00103 : Encountered the symbol “end-of-file” when expecting one of the following,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39999633/

10-11 23:15