关于解决 Oracle 在插入或修改时文字字符串太长的问题
今天在操作数据库数据的时候,想要插入一条数据,由于是记录一些在地图上面绘制的坐标,它是一个很长的字符串。例如:
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,所以当字符串超过这个长度就会转换失败。
OH,GOOD BLOG.
这个可以有!