今天在操作数据库数据的时候,想要插入一条数据,由于是记录一些在地图上面绘制的坐标,它是一个很长的字符串。例如:

insert into t_table (ID, NAME, LNGLAT) values (1, '图形1', '114.420008,30.654302;……114.420008,30.654139');

在使用PL/SQL执行SQL的时候,会报 ORA-01704: 文字字符串太长 的错误。

解决方案:

使用存储过程操作数据,如下:

declare
    content clob;
begin
  content := '114.420008,30.654302;……114.420008,30.654139';
  insert into t_table (ID, NAME, LNGLAT) values (1, '图形1', content);
end;

在执行更新的时候,出现字符串 文字字符串太长 的提示也可以使用上述方法解决。

原因分析:sql在执行之前会把所有字符类型的数据转换成VARCHAR2类型,而VARCHAR2类型的最大长度为4000,所以当字符串超过这个长度就会转换失败。

 

 

标签: ORA-01704, PL/SQL执行SQL字符串太长, Oracle 在插入或修改时文字字符串太长

已有 2 条评论

  1. eeli

    OH,GOOD BLOG.

  2. 91jufan

    这个可以有!

添加新评论