我正在尝试将我们的遗留函数转换为标准SQL,因此通过使用udf作为gig来重用本地函数的旧函数名称。
这里我有我的UDF to_char,并在里面使用参数来运行FORMAT_DATE,但是当我执行它时,即使创建了一个例程,我也会得到没有额外信息的错误。一旦创建了例程并注释掉代码,错误就会出现function to_char not found
如果我运行CREATE TEMP FUNCTION
,我得到很长的加载时间(大约30 - 90秒),这显然是不对的。
CREATE OR REPLACE FUNCTION mytable.TO_CHAR(dstamp DATETIME, fmt STRING)
RETURNS STRING AS
(
FORMAT_DATE(fmt, dstamp)
);
SELECT
TO_CHAR(End_Time, 'yyyy-mm') AS Month_and_Year,
我不想创建一个临时函数。理想情况下,我想有一个例程,我可以在需要时继续调用,但我搞砸了我的UDF和FORMATE_DATE函数。任何帮助将非常感激,谢谢!
btw在GBQ中运行这个
您需要引用带有数据集前缀的UDF,否则BigQuery认为它是内置函数或临时UDF。在您的情况下,只需将TO_CHAR
更改为mytable.TO_CHAR
。假设您的mytable
实际上是一个数据集。
SELECT mytable.TO_CHAR(End_Time, 'yyyy-mm') AS Month_and_Year,