甲骨文 18c:
在單個查詢的 WITH 子句中包含多個行內函式和多個 CTE的語法是什么?
功能#1:
function fucntion1(num in number) return number
is
begin
return num 1;
end;
功能#2:
function fucntion2(num in number) return number
is
begin
return num 2;
end;
CTE #1:
cte as (select 1 from dual)
CTE #2:
cte2 as (select 2 from dual)
uj5u.com熱心網友回復:
與以往一樣,對于“...的語法是什么”問題,您應該參考官方檔案。
SELECT語法是_
查詢塊 ::=
with_clause ::=
plsql_declarations ::=
subquery_factoring_clause ::=
PL/SQL 函式語法
函式定義 ::=
身體 ::=
所以:
PL/SQL 函式的主體必須以
;.(注意:這是一個 PLSQL 陳述句終止符,而不是
WITHPL/SQL 函式宣告之間的子句中的分隔符,因為 PL/SQL 函式宣告之后沒有分隔符。),連續的子查詢因式分解子句之間有一個字符。該
SELECT陳述句不需要;or/陳述句終止符,但您用于表示陳述句終止的客戶端應用程式可能允許/要求/禁止它。例如:
- 您只能通過 OJDBC 陳述句傳遞單個陳述句,并且對于此客戶端,禁止使用陳述句終止符。
- 在 SQL Developer 中,當您運行單個陳述句時,允許使用尾隨陳述句終止符,但它是可選的。
- 在 SQL Developer 中,當您運行腳本時,陳述句之間需要陳述句終止符。
uj5u.com熱心網友回復:
看起來語法是:
- 在每個函式的末尾使用分號,包括最終函式。(沒有反斜杠)
- 用逗號分隔 CTE。
- 編輯:不要在 WITH 子句中包含最后的分號或反斜杠。
with
function fucntion1(num in number) return number
is
begin
return num 1;
end;
function fucntion2(num in number) return number
is
begin
return num 2;
end;
cte as (select 1 from dual),
cte2 as (select 2 from dual)
select
fucntion1(1) as function_result
from
cte
union all
select
fucntion2(1)
from
cte2
FUNCTION_RESULT
---------------
2
3
相關:在 SQL 查詢中使用行內函式和 CTE
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489473.html
標籤:sql 甲骨文 with-语句 oracle18c 内联函数
下一篇:SQLLDR-條件加載(行尾)






