这是在做数据迁移的时候,将mysql库中的数据整理成Oracle脚本,接着在客户端运行sql脚本插入数据时碰到的问题。明显就是文本太长了导致的报错,但是实际上设置的字段是可以支持这么长的文本数据的。
解决方案
- 直接写程序导出导入数据,这点测试过,没问题。
- 修改成以下的语法:
DECLARE aaa clob := 'XXXX超长的文本';
BEGIN
DELETE FROMxxx_TABLEWHEREid = 111;
INSERT INTO xxx_TABLE(id,name
)
VALUES(111,aaa);END;
以上是先把超长文本保存在一个变量,然后删除数据,接着插入数据,顺便实现了replace into的效果,试过,也能成功插入数据。
总结
根据实际情况来选择方案吧,看下哪个方案的成本更高,或者是需求是否紧急,正常来说,第一个方案成本更高,但是可以一劳永逸解决之后的脚本问题,第二个方案相比起开发代码,可能短期内可以更快交付。