发现问题:导入字符长度过长,无法导入?
1.varchar2(100)类型
存储字符数据
Oracle Database 最大值为4000
PL/SQL 最大值为32767
大数据类型LOB(Large Object 大型对象)
2.LOB类型
能容纳4Gb数据
一个表中可以有多个这种类型的字段
分类:
- BLOB:二进制大型对象(Binary Large Object)非文本的字节流数据(程序、图像、影音等)
- CLOB:字符型大型对象(Character Large Object)字符集、文本型数据
3.使用
普通查询看不到 CLOB 类型的字段类型
普通插入也会因为 Oracle 的隐式转换,默认把字符串转换成varchar2类型,一旦字符串长度超过4000,则报“ora-01704”错误。
4.常用语法
1 dbms_lob.createtemporary(V_SQL,true); --创建一个临时clob,用来存储拼接的sql
2 dbms_lob.write(v_SQL,'写入信息'); --写入操作
3 dbms_lob.append(v_SQL,','); --拼接clob
4 dbms_lob.substr(v_SQL); --截取clob,不传参数就是全部读取
5 dbms_lob.freetemporary(v_SQL); --释放clob
5.总结
虽然CLOB能解决字符大小的限制,但效率不高,大文件还是应该放在服务器,然后Database中存响应地址即可。
参考链接:Oracle的CLOB大数据字段类型