![](/img/trans.png)
[英]Snowflake SQL compilation error: syntax error line XX at position XX unexpected '('
[英]While compiling Snowflake UDF getting error SQL Error [1003] [42000]: SQL compilation error: syntax error line 7 at position 31 unexpected '{'
我希望字符串變量 Object_List 中的表名如下 Object_List=('Table1,Table2,Table3) 並希望 output 作為值表 RowNo TableName 1 Table1 2 Table2 3 Table3。
給出錯誤的代碼如下:
CREATE OR REPLACE FUNCTION Extract_TableNames(Object_List Varchar)
RETURNS TABLE ("TABLE_NAME" VARCHAR)
LANGUAGE SQL
AS
'
WITH DATATABLE(VALUEA) AS (
SELECT *
FROM VALUES (Object_List) )
SELECT
REPLACE(REPLACE(VALUE,'{',''),'}','')
SPLITTED_VALUE
FROM DATATABLE ,
LATERAL SPLIT_TO_TABLE (VALUEA,',') ;
'
;
您在 function 中嵌入的 SQL 不應該有;
在里面。
您也可以將 SQL 簡化為:
CREATE OR REPLACE FUNCTION Extract_TableNames(Object_List TEXT)
RETURNS TABLE (TABLE_NAME VARCHAR)
AS $$
SELECT
REPLACE(REPLACE(s.value,'{',''),'}','') AS splitted_value
FROM TABLE(SPLIT_TO_TABLE (object_list,',')) s
$$;
可以用作:
SELECT * FROM TABLE(Extract_TableNames('{aa},{bb}'));
這使:
TABLE_NAME |
---|
啊 |
bb |
顯示 SQL 在 function 之外單獨工作:
SELECT
REPLACE(REPLACE(s.value,'{',''),'}','') AS splitted_value
FROM TABLE(SPLIT_TO_TABLE ('{aa},{bb}',',')) s;
TABLE_NAME |
---|
啊 |
bb |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.