社区
Oracle
帖子详情
Oracle用sql批量导入数据时字段类型为CLOB,报[ERR] ORA-01704: 字符串文字太长
qq838077327
2019-03-29 10:09:24
批量导入数据,一万多条吧,有两千条左右报[ERR] ORA-01704: 字符串文字太长错误,各位遇到过这种情况吗,怎么解决的
...全文
634
4
打赏
收藏
Oracle用sql批量导入数据时字段类型为CLOB,报[ERR] ORA-01704: 字符串文字太长
批量导入数据,一万多条吧,有两千条左右报[ERR] ORA-01704: 字符串文字太长错误,各位遇到过这种情况吗,怎么解决的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_45193701
2020-05-29
打赏
举报
回复
想问一下楼主后来是怎么解决的
AHUA1001
2019-04-01
打赏
举报
回复
目标数据库的这个字段是什么类型的
qq838077327
2019-03-29
打赏
举报
回复
引用 1 楼 卖水果的net 的回复:
应该是超过 4000 了。 楼主是通过什么方式(工具)导入的?
用了Navicat的执行sql
卖水果的net
2019-03-29
打赏
举报
回复
应该是超过 4000 了。 楼主是通过什么方式(工具)导入的?
ORA
CLE
,my
sql
,
sql
server,sybase
数据
库装文本软件
自己写的
数据
库装载工具,平
时
工作中用于装载大文本文件到
数据
库表,也能直接装载excel,不过excel只能使用第一个sheet,且不支持合并的单元格。 jdk要求版本1.6及以上。 使用方法: java -jar lynload.jar,即可看到中文命令行参数(unix下需设置gbk字符集环境才能看中文,没gbk环境不能看中文,但不影响
导入
数据
)。 特色: 1.同
时
支持多个
数据
库. 2.支持任意
字符串
作为列分隔符,什么竖线逗号或者十六进制字符及任意组合
字符串
都行 3.支持任意
字符串
作为每行分隔符,例如\r,\r\n,或者十六进制字符或任意指定的
字符串
(例如可实现把整个日志文件装入
数据
库的单个
clob
字段
). 4.支持任意大小的文本,装入几十GB都试过没问题。 5.明确到每一行的错误信息.(装载
时
会生成一个.
err
文件,里面有装载出错的每一行错误原因(少
字段
还是格式不符合要求等等)。 6.可以作为库使用在jsp等后台直接调用,将整个jar作为库,使用
Ora
Load类的int ProcLoad(Connection in_conn, String args[])函数就可以实现类似功能了。例如 new
Ora
Load.ProcLoad( null, "-u test -p testpwd -i 127.0.0.1 -s
ora
10 -f test.txt -t tmp_test -c , -e gbk"); 具体参数如下: Usage: -db database type 1或者
ora
cle
,
ora
cle
数据
库,不区分大小写,默认1,需java1.5及以上版本 2或者
sql
server, ms
sql
server
数据
库,不区分大小写,需java1.6及以上版本 3或者my
sql
, my
sql
数据
库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase
数据
库,不区分大小写(暂未测试) -url
数据
库连接的url.默认空
字符串
如果有url参数,则-i-p-s-dn参数全无效。 如果没有url参数,则必须提供-i-p-s参数,程序里面好拼凑url 例如: jdbc:
sql
server://localhost:1433; DatabaseName=sample -i ip address:port ip地址和端口,中间用冒号隔开 url不为空则此参数无效 如果不带端口,系统根据
数据
库
类型
采用默认端口
ora
cle
数据
库: 默认为1521端口
sql
server
数据
库: 默认为1433端口 my
sql
数据
库: 默认为3306端口 sybase
数据
库: 默认为5000端口 例如: 127.0.0.1:1521 例如: 192.168.0.1 -s serviceid or database name
ora
cle
服务名或者其他
数据
库的
数据
库名 url不为空则此参数无效 -u username 用户名,必输 -p Password 登录密码,必输 -t TableName 要插入的表名,可以带用户,必输 例如: scott.emp 或者 emp都行 -f FileName 来源的文件名,必输 -ff FileName format 来源的文件名
类型
:txt,文本文件;xls:Excel2003或2007文件),默认是txt 对于Excel文件的
导入
,仅
导入
第一个sheet的内容,其他sheet的内容忽略 -e Encoding 文件的编码,默认gbk -c Cut split string 分隔
字符串
,可以是多个字符组合,默认竖线 -r commit rows 每插入多少行提交一次,-1表示不提交,默认-1,如果设置了ac参数为1,则此参数无效。 注意:如果设置了此参数,每到此行数会执行一次commit,如果是外部调用此过程要注意所有
数据
会被提交 -ac all commit 0.插入成功的都提交,失败的登记文本,默认0; 1.全部插入成功后才提交(有失败则回滚并结束) -a column flag 第一行的
类型
0.没有列名行,默认0。此值为0则it参数不生效。 1.第一行是逗号分隔的包括列
类型
的列信息,例如NAME VARCHAR2(30),注意,区分大小写 2.第一行是列分隔符分隔的列名(不包括列
字段
信息),注意,列名区分大小写 -it insert type 1.
导入
的列需要跟
数据
库列名个数及名称完全相同,顺序无所谓,默认1 2.仅
导入
文件
字段
名与
数据
库
字段
名完全相同的
数据
,顺序无所谓 3.第一行是列信息,按此列信息创建新表
导入
数据
(暂不用) 4.忽略第一行,无论第一行是什么
数据
全部忽略,从第二行按列
字段
顺序匹配装载 必须在-a 参数 > 0
时
才生效,否则无意义 -d date formate 日期格式,参考java的SimpleDateFormate类参数,默认自动识别 可识别格式:yyyyMMdd, yyyy-MM-dd, yyyy/MM/dd, yyyyMMdd:HHmmss(等于
ora
cle
的yyyymmdd:hh24miss) yyyy年,MM月,dd日,HH 24小
时
制
时
,hh 12小
时
制
时
,mm 分, ss秒 -l line end string 每条记录结尾的分隔符,默认是 \r\n回车换行符,支持前面-c参数说的转义符
ora
cle
例子: 登陆scott用户,裝载a.txt的逗号分隔的gbk编码文本内容到scott.emp java -jar xxx.jar -i 127.0.0.1 -p 1521 -s
ora
10 -u system -p manager -t scott.emp -f a.txt -c ,
sql
server例子: 登陆11.8.126.181
数据
库的test用户,裝载f: est.xlsx的excel
数据
到tmp_i表 java -jar -db
sql
server -i 11.8.126.181 -s abcd -u test -w test -f f: est.xlsx -t tmp_i -ff xls my
sql
例子: 登陆本机
数据
库的root用户,裝载a.txt的文本
数据
到tmp_i表,不提交 java -jar xxx.jar -db my
sql
-i 127.0.0.1 -s gjjgj -u root -w root -f a.txt -t tmp_i
Ora
cle
解决【
ORA
-
01704
:
字符串
文字
太长
】
Ora
cle
解决【
ORA
-
01704
:
字符串
文字
太长
】 错误提示:
ora
cle
在toad中执行一段
sql
语句
时
,出现错误‘
ORA
-
01704
:
字符串
文字
太长
’。 如下图: 原因:一般为包含有对
CLOB
字段
的
数据
操作。如果
CLOB
字段
的内容非常大的
时
候,会导致
SQL
语句过长。隐式转换:
ora
cle
默认把
字符串
转换成varchar2
类型
,而这个
字符串
的长度,又比4000大,所以会
报
ora
-
01704
错误。说得通俗一点,就是两个单引号之间的字符不能超过4000。 解决办法:使用PL/
SQL
语法,采取绑定变量的
JavaWeb实战开发
本课程详细讲解了以下内容: 1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程 2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例 3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题 4.session与cookie问题及application、cookie补充说明及四种范围对象作用域 5.JDBC原理及使用Statement访问
数据
库、使用JDBC切换
数据
库以及PreparedStatement的使用、Statement与PreparedStatement的区别 6.JDBC调用存储过程和存储函数、JDBC处理大文本
CLOB
及二进制BLOB
类型
数据
7.JSP访问
数据
库、JavaBean(封装
数据
和封装业务逻辑) 8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析 9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil) 1 0.Web调试及bug修复、分页
SQL
(
Ora
cle
、My
SQL
、
SQL
SERVER) 11.分页业务逻辑层和
数据
访问层Service、Dao、分页表示层Jsp、Servlet 12.文件上传及注意问题、控制文件上传
类型
和大小、下载、各浏览器下载乱码问题 13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove 14.过滤器、过滤器通配符、过滤器链、监听器 15.session绑定解绑、钝化活化 16.以及Ajax的各种应用 17. Idea环境下的Java Web开发
ora
cle
ORA
-
01704
: string literal too long
字符串
文字
太长
报
错解决方法
ora
cle
ORA
-
01704
: string literal too long
字符串
文字
太长
报
错解决方法。此类问题基本是在需要处理大文本内容
时
出现,例如将大文本插入到某个
字段
内,或者
导入
存在
clob
类型
字段
的内容且文本内容超过4000字符长度
时
,执行则弹出
ORA
-
01704
: string literal too long的
报
错信息,可以尝试以下方案。
ORA
-
01704
: string literal too long
ORA
-
01704
: string literal too long
Oracle
17,082
社区成员
55,236
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章