Flyway不支持PL / SQL内联函数吗?

问题描述 投票:2回答:1

由于Oracle 12c可以在SQL查询中编写内联函数,请考虑Inline Functions但是,当在flyway脚本中使用此语法时,显然它不起作用。据我了解的Flyway文档,未考虑这种用法,请考虑Flyway documentation:“ SQL脚本语法”部分。当我尝试使用它时,我会不断得到

ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of the following: := ; not null default character

所以,我能正确理解无法在Flyway中使用内联PL / SQL函数吗?

这是我的剧本:

CREATE OR REPLACE VIEW TEST_VIEW AS
WITH
FUNCTION testfunction (input IN NUMBER) RETURN VARCHAR2
IS
BEGIN
  return 'fffff';
END;
SELECT
  testfunction(2) AS TEST_COLUMN
FROM dual;
/
oracle plsql flyway
1个回答
1
投票

您可以使用匿名PL / SQL块创建视图吗?

--Create view with dynamic SQL to avoid Flyway parser bug.
begin
    execute immediate q'[
CREATE OR REPLACE VIEW TEST_VIEW AS
WITH
FUNCTION testfunction (input IN NUMBER) RETURN VARCHAR2
IS
BEGIN
  return 'fffff';
END;
SELECT
  testfunction(2) AS TEST_COLUMN
FROM dual
]';
end;
/
© www.soinside.com 2019 - 2024. All rights reserved.