PL/SQL Flyway 不支持内联函数?
PL/SQL inline functions are not supported by Flyway?
自 Oracle 12c 以来,可以在 SQL 查询中编写内联函数,请考虑 Inline Functions
但是,显然在 flyway 脚本中使用此语法时它不起作用。据我了解 Flyway 文档,没有考虑这种用法,考虑 Flyway documentation: "SQL Script Syntax" 部分。当我尝试使用它时,我不断收到
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;
/
您可以使用匿名 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;
/
自 Oracle 12c 以来,可以在 SQL 查询中编写内联函数,请考虑 Inline Functions 但是,显然在 flyway 脚本中使用此语法时它不起作用。据我了解 Flyway 文档,没有考虑这种用法,考虑 Flyway documentation: "SQL Script Syntax" 部分。当我尝试使用它时,我不断收到
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;
/
您可以使用匿名 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;
/