我已经成功地创建了一个Python,它接受表中的varchar值,并基于regex提取该值的子字符串。
DDL中varchar列的最大大小设置为20000字节,在某些情况下,当我试图调用它时,UDF输出一个错误:
ERROR: Value too long for character type
Detail:
-----------------------------------------------
error: Value too long for character type
code: 8001
context: Value too long for type character varying(256)
query: 1127608
location: funcs_string.hpp:390
process: query0_73 [pid=25345]
-----------------------------------------------UDF输入变量的最大varchar限制是否设置为256字节?如果是,这是我可以在代码中更改的东西吗?
谢谢,
发布于 2015-11-11 14:12:33
结果表明,如果函数的参数大于256,则必须指定其长度,这是默认值。因此,我使用类似于:
CREATE OR REPLACE FUNCTION f_xxxxxx(val VARCHAR(20000)) RETURNS VARCHAR(20000)
IMMUTABLE AS $$
<python function here>
$$ LANGUAGE plpythonu;发布于 2015-11-10 13:19:07
你在用文本还是nvarchar?Redshift内部不支持这些数据类型,并将它们转换为varchar(256)。
更详细的信息可以找到这里
https://stackoverflow.com/questions/33607407
复制相似问题