首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redshift Python限制

Redshift Python限制
EN

Stack Overflow用户
提问于 2015-11-09 10:45:05
回答 2查看 2.1K关注 0票数 4

我已经成功地创建了一个Python,它接受表中的varchar值,并基于regex提取该值的子字符串。

DDL中varchar列的最大大小设置为20000字节,在某些情况下,当我试图调用它时,UDF输出一个错误:

代码语言:javascript
复制
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字节?如果是,这是我可以在代码中更改的东西吗?

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-11 14:12:33

结果表明,如果函数的参数大于256,则必须指定其长度,这是默认值。因此,我使用类似于:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION f_xxxxxx(val VARCHAR(20000)) RETURNS VARCHAR(20000) 
IMMUTABLE AS $$
<python function here>
$$ LANGUAGE plpythonu;
票数 15
EN

Stack Overflow用户

发布于 2015-11-10 13:19:07

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

更详细的信息可以找到这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33607407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档