Python redchar UDFs限制

2024-04-25 07:37:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地创建了一个Python UDF,它接受表中的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字节?如果是,这是我可以在代码中更改的吗?在

谢谢


Tags: 字符串for字节valuetype错误情况error
2条回答

结果是,如果长度大于256,则必须在函数参数中指定长度,这是默认值。。所以我用类似于:

CREATE OR REPLACE FUNCTION f_xxxxxx(val VARCHAR(20000)) RETURNS VARCHAR(20000) 
IMMUTABLE AS $$
<python function here>
$$ LANGUAGE plpythonu;

你用的是文本还是nvarchar?Redshift在内部不支持这些数据类型,并将它们转换为varchar(256)。在

更多详情请参见here

相关问题 更多 >

    热门问题