簡體   English   中英

無法使用 function (GCP) 保存視圖

[英]Can´t save view with function (GCP)

我正在使用 BIGQUERY 嘗試使用帶有 Function 的查詢生成視圖(這是一個示例,而不是查詢本身)

CREATE TEMP FUNCTION validate_rut(s string)

返回字符串

作為 (

if(length(s) = 10 或 length(s) = 12, left(regexp_replace(s, r'[.-]', ''), 8)

, if(length(s) = 11 或 length(s) = 9, left(regexp_replace(s, r'[.-]', ''), 7)

, 無效的)

)

);

select 車轍,驗證車轍(車轍)

從(選擇'11.111.111-8'車轍聯合所有

select '11111111-8' 聯合所有

select '2.222.222-9' 聯合所有

select '2222222-9'聯合所有

select '33333333' 聯合所有

select '7777777'

)

問題是,當我嘗試將查詢另存為視圖時,我收到此消息。

“不支持在視圖中創建臨時 Function 語句”

這是我第一次嘗試做這樣的事情。

謝謝你。

您可以使用以下語法將 function 創建為永久 udf:

CREATE FUNCTION `my_project.my_dataset.validate_rut`(s string)

RETURNS string
AS (
if(length(s) = 10 or length(s) = 12 , left(regexp_replace(s, r'[.-]', ''), 8)
, if(length(s) = 11 or length(s) = 9, left(regexp_replace(s, r'[.-]', ''), 7)
, null)
)
);

在此示例中,您的永久 udf 是在名為udf的現有Bigquery datasetmy_dataset的。

然后,您可以使用以下語法按預期查詢您的 function:

select rut, `my_project.my_dataset.validate_rut`(rut)
from (select '11.111.111-8' rut union all
select '11111111-8' union all
select '2.222.222-9' union all
select '2222222-9'union all
select '33333333' union all
select '7777777'
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM