sql—在oracle中创建函数时出现问题?

6mzjoqzu  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(293)

我在执行函数时遇到问题。似乎语法没有被写入。这是我的不同版本的代码。它们似乎都不起作用。

CREATE OR REPLACE FUNCTION F1 (DTE IN VARCHAR(50))
RETURN VARCHAR(50) IS
B1 VARCHAR(50);
SELECT * INTO B1 FROM DUAL;
RETURN B1
END

甚至下面的模板短语也不起作用

create or replace function compute()
  2  return varchar2
  3  is
  4  begin
  5  end;
  6  /

错误就在这里

PLS-00103: Encountered the symbol "END" when expecting one of the
         following:
         ( begin case declare exit for goto if loop mod null pragma
         raise return select update while with <an identifier>
         <a double-quoted delimited-identifier> <a bind variable> <<

也许我只是错过了一些小事。

gopyfrb3

gopyfrb31#

您的代码有多个问题(请参阅以下代码中的内联注解:

CREATE OR REPLACE FUNCTION F1 (DTE IN VARCHAR) -- size is not needed here
RETURN VARCHAR IS -- size is not needed here
B1 VARCHAR(50);
BEGIN -- begin keyword is needed here
SELECT <some_column> INTO B1 FROM DUAL; -- column name instead of *
RETURN B1; -- ; is needed here
END; -- ; is needed here
vom3gejh

vom3gejh2#

好吧,你的第一个代码缺少一个“;”在最后两行的末尾。您的第二个示例在开始和结束之间需要一些东西:

create or replace function compute()
 return varchar2
 is
 begin
   return 'a';
 end;
 /

相关问题