Oracle sqlldr导入以回车和回车换行字符结尾的文本
2012-05-21 17:31
483 查看
在一个大文本中(超过1.5G),当有同时存在回车换行以及回车字符结尾时,如果换行结尾的量大于sqlldr默认缓冲1048576时候,会报错。
SQL*Loader-510: 数据文件 (XXX.txt) 中物理记录超过最大限制 (1048576)
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。
网上搜很久,解决方法
修改 readsize — 读取缓冲区的大小 (默认 1048576) 修改为 20971520
但是还是报错
SQL*Loader-510: 数据文件 (XXX.txt) 中物理记录超过最大限制 (20971520)
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。
这边简单分析下原因,sqlldr加载到我这边txt文本中第一行以回车换行符结尾,就默认所有行都以回车换行符结尾了,当加载到以换行符结尾的文本区域时由于换行结尾的行数过大,缓冲区无法装载而报错。
解决方法:
INFILE "xxx.txt" "str X'0A'"
0A代表换行符,即将换行符一起装载,相当于定义新行结尾符号。
SQL*Loader-510: 数据文件 (XXX.txt) 中物理记录超过最大限制 (1048576)
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。
网上搜很久,解决方法
修改 readsize — 读取缓冲区的大小 (默认 1048576) 修改为 20971520
但是还是报错
SQL*Loader-510: 数据文件 (XXX.txt) 中物理记录超过最大限制 (20971520)
SQL*Loader-2026: 加载因 SQL 加载程序无法继续而被终止。
这边简单分析下原因,sqlldr加载到我这边txt文本中第一行以回车换行符结尾,就默认所有行都以回车换行符结尾了,当加载到以换行符结尾的文本区域时由于换行结尾的行数过大,缓冲区无法装载而报错。
解决方法:
INFILE "xxx.txt" "str X'0A'"
0A代表换行符,即将换行符一起装载,相当于定义新行结尾符号。
相关文章推荐
- 文本如何导入oracle(sqlldr 的用法)1
- 文本如何导入oracle(sqlldr 的用法)2
- 将尖括号、空格、回车、换行等特殊字符转换成普通文本
- oracle通过sqlldr导入文本数据
- 文本如何导入oracle(sqlldr 的用法)3
- 数据库文本中关于换行和回车等特殊字符的输出显示问题
- 使用sqlldr导入文本数据到oracle
- sqoop clob从Oracle导入到hive 回车换行导致记录增多
- 使用sqlldr向Oracle导入大的文本(txt)文件
- ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析
- oracle使用sqlldr(有sequence)导入数据
- oracle 去空格,回车,换行,Tab
- sqlldr 导入乱码,Oracle客户端字符集问题
- Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
- 如何在字符串中加入回车换行,tab字符(关于字符串处理)
- oracle下的sqlldr命令使用方法(sqlldr工具的使用(批量将文本文件数据加载到数据表))
- oracle删除字段中的空格、回车及指定字符
- oracle的文本导入、导出技巧
- 解决无法向oracle中的long型字符插入大文本的问题
- 回车字符'\r'与换行字符'\n'