sqlldr的问题,急!!!谢谢先

tandy_cs_201 2006-12-19 10:20:46
我有个txt文件为20M,想把它导入到ORACLE数据库中,
sqlldr username/password@sid control='c;\test.ctl'

出现
达到提交点,逻辑记录计数1
SQL*Loader-510: 数据文件 (c:\ldr\test.txt) 中物理记录超过最大限制 (1048576)
SQL*Loader-2026: 由于无法继续, 加载已中止。

要怎么解决??
...全文
362 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
arben555 2006-12-21
  • 打赏
  • 举报
回复
有可能是你字段类型定义得太大了.试试调整一下!
tandy_cs_201 2006-12-20
  • 打赏
  • 举报
回复
sqlldr对文件大小有什么限制吗
tandy_cs_201 2006-12-19
  • 打赏
  • 举报
回复
除了这个方法我想知道是不是还有其他方法,因为毕竟我的txt文件才20M,ORACLE应该有参数可以设置
zqf2010 2006-12-19
  • 打赏
  • 举报
回复
能不能把txt文件分为两个呢?
chliang315 2006-12-19
  • 打赏
  • 举报
回复
你把数据分开提交一下。
tandy_cs_201 2006-12-19
  • 打赏
  • 举报
回复
表结构:
ID NUMBER N 文章ID
TITLE VARCHAR2(300) Y 标题
CONTENT CLOB Y 内容
CLICKS NUMBER Y 点击数
AUTHOR VARCHAR2(60) Y 增加人
ADD_DATE DATE Y 增加时间
SOURCE VARCHAR2(60) Y 出处
RELEASE_STATE VARCHAR2(20) Y 发布状态
IS_COMMENT VARCHAR2(10) Y 是否评论
IS_DEL VARCHAR2(10) Y 是否删除
ACTION_ID NUMBER Y
RESTRICT_ID NUMBER Y 限定类别
ARTICLE_CLASS_ID VARCHAR2(60) Y 栏目类型ID
SPECIAL_ID VARCHAR2(60) Y 专题类型ID
PAGINATION_ID NUMBER Y 分页
FRAME_TEMPLET_ID NUMBER Y 排版模板ID
COLOR_TEMPLET_ID NUMBER Y 颜色模板ID
KEY_WORD VARCHAR2(60) Y 关键字
LINK_TO_EXTERIOR VARCHAR2(200) Y 外部链接
HOMEPAGE_IMAGE VARCHAR2(200) Y 显示图片(图片新闻)
SAVE_DATE DATE Y 保存时间
IS_HOT VARCHAR2(10) Y 是否最新
IS_ONTOP VARCHAR2(10) Y 是否固顶
IS_ELITE VARCHAR2(10) Y
IS_COMMEND VARCHAR2(10) Y 是否推荐
ADD_USER VARCHAR2(20) Y 增加人
SUMMARY VARCHAR2(200) Y 摘要
CURR_AUDIT_LEVEL NUMBER Y
HTML_SAVE_PATH VARCHAR2(200) Y
ARTICLE_CHILDTYPE VARCHAR2(500) Y

表空间肯定够用,因为后来我用程序方式将数据导入了
tandy_cs_201 2006-12-19
  • 打赏
  • 举报
回复
可以
ctl文件:
Load DATA
INFILE 'c:\ldr\test2.txt'
APPEND
INTO TABLE wz_cms_article_test
FIELDS TERMINATED BY '#'
TRAILING NULLCOLS
( ID integer external,
TITLE char(2000),
CONTENT char(4000000),
CLICKS integer external,
AUTHOR char(2000),
ADD_DATE date(20) 'yyyy-mm-dd hh24:mi:ss',
SOURCE char(2000),
RELEASE_STATE char(2000),
IS_COMMENT char(2000),
IS_DEL char(2000),
ACTION_ID integer external,
RESTRICT_ID integer external,
ARTICLE_CLASS_ID char(2000),
SPECIAL_ID char(2000),
PAGINATION_ID integer external,
FRAME_TEMPLET_ID integer external,
COLOR_TEMPLET_ID integer external,
KEY_WORD char(2000),
LINK_TO_EXTERIOR char(1000),
HOMEPAGE_IMAGE char(1000),
SAVE_DATE date(20) 'yyyy-mm-dd hh24:mi:ss',
IS_HOT char(2000),
IS_ONTOP char(2000),
IS_ELITE char(2000),
IS_COMMEND char(2000),
ADD_USER char(2000),
SUMMARY char(1000),
CURR_AUDIT_LEVEL integer external,
HTML_SAVE_PATH char(1000),
ARTICLE_CHILDTYPE char(1000))
arben555 2006-12-19
  • 打赏
  • 举报
回复
或者,你让我看看,你的test.ctl是怎么设置的.
arben555 2006-12-19
  • 打赏
  • 举报
回复
你看一看你要导入的表所在的表空间最大限制是多少,如果达不到你所要导入的txt文件的大小,你得重新设置一下.
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to set ORACLE_HOME to your Oracle software directory 4、Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL$ 检查了dba用户和web用户下关于oracle的所有环境变量发现没有问题 (/home/oracle/.profile 与 /home/erm/.profile 环境变量文件为隐藏文件需使用 ls -a 命令查看) 在网上查了一遍以后有如下几种处理办法: 1、没有oracle_home目录的执行权限,无法进入到bin目录,使用chmod 755 $oracle_home更改目录权限;使用chmod 755 $oracle_home/lib更改目录权限;对目录$oracle_home/rdbms/mesg目录赋予相应权限;当需要给非oracle用户配置使用sqlldr时,不单需要配置环境变量,还需要把相关目录的访问权限赋予该用户。【采用此法测试以后还是出现上面的错误】 2、用sh直接执行shell和在java直接执行shell是有区别的,要在shell文件内增加oracle的环境变量即. /home/oracle/.bash_profile 这句话,否则在执行sqlldr会报如下异常: Message 2100 not found; No message file for product=RDBMS...... facility=UL 【采用此法测试以后继续报错,但是这个方法有引导作用,继续往下看】 因为我在linux环境下执行shell脚本时sqlldr命令和sqlplus命令是正常执行的,没有任何问题,但是在java代码中调用脚本时却报错,所有排除了其他原因,只可能是环境变量的问题, 于是我把oracle的所有环境变量直接复制到shell脚本文件中,在java中调用了一下,然后所有问题迎刃而解! 具体代码参看文件内容

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧