我的实际问题是,在将数据加载到redshift中而没有错误通知的情况下,在单独的表中过滤了受错误影响的行(数据类型错误),现在我正在使用Matillion工具进行数据加载。因此,我想将实际数据与数据类型进行比较。我有了使用UDF函数而不是SQL脚本的想法。我在所有字段中都有数据作为varchar数据类型。我想知道每个数据数据类型。我分享了我尝试过的UDF函数。不适用于varchar输入。
CREATE OR REPLACE FUNCTION
staging.type_compare(input_data character varying)
RETURNS character varying AS
'import datetime
if type(input_data) == str:
return "varchar"
elif type(input_data) == float:
return "double precision"
elif type(input_data) == int:
return "integer"
elif type(input_data) == bool:
return "boolean"
elif type(input_data) == datetime.datetime:
return "datetime"
else:
return None
'
LANGUAGE plpythonu STABLE;```