insert 中使用substr无效,求解释

wushangjimo 2013-08-26 10:35:30
sql中使用:substr(pj.investapp_no,1,50) LXPZWH,
报异常:"T_DLJG_TASK_DATA"."LXPZWH" 的值太大 (实际值: 52, 最大值: 50)
使用的语句是inset into tablename select....
...全文
253 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
NIan_jun 2013-08-30
  • 打赏
  • 举报
回复
substr 函数是按照char 字符来截取长度。 而字段定义varchar2(50) 默认是varchar2(50 byte) 是按字节定义的 字符和字节的不同由字符集确定 GBK 1字符=2字节,所以报异常。 在字段定义时可以用varchar2(50 char)代替
wushangjimo 2013-08-26
  • 打赏
  • 举报
回复
现在发现另外一个问题,如果把substr的第三个变量改为小于32的数就能通过,但是我的字段明明定义的就是varchar2(50),非常疑问

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧