sql loader 导入数据,加上最后一列就无法正常导入

chemzh 2016-09-07 04:13:02
使用sqlldr导入数据的是时候,在控制文件中去掉deptno列就可以正常导入。

输入deptno列之后,所有的数据就都导入不进去,都跑到bad文件里面去了。

我查过了没有空格之类的字符,请大神帮忙解释一下,谢谢!


load data
infile '/home/oracle/abC.csv'
truncate
into table t
fields terminated by ','
trailing nullcols
(EMPNO, ENAME,JOB,MGR,HIREDATE date 'YYYY/MM/DD HH24:MI:SS',SAL,comm,deptno)

[oracle@oraclelinux2:/home/oracle]$cat ab.csv
EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
7369,SMITH,CLERK,7902,1980/12/17 0:00,800,,20
7499,ALLEN,SALESMAN,7698,1981/2/20 0:00,1600,300,30
7521,WARD,SALESMAN,7698,1981/2/22 0:00,1250,500,30
7566,JONES,MANAGER,7839,1981/4/2 0:00,2975,,20
7654,MARTIN,SALESMAN,7698,1981/9/28 0:00,1250,1400,30
7698,BLAKE,MANAGER,7839,1981/5/1 0:00,2850,,30
7782,CLARK,MANAGER,7839,1981/6/9 0:00,2450,,10
7788,SCOTT,ANALYST,7566,1987/4/19 0:00,3000,,20
7839,KING,PRESIDENT,,1981/11/17 0:00,5000,,10
7844,TURNER,SALESMAN,7698,1981/9/8 0:00,1500,0,30
7876,ADAMS,CLERK,7788,1987/5/23 0:00,1100,,20
7900,JAMES,CLERK,7698,1981/12/3 0:00,950,,30
7902,FORD,ANALYST,7566,1981/12/3 0:00,3000,,20
7934,MILLER,CLERK,7782,1982/1/23 0:00,1300,,10



SQL> desc t;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
...全文
1015 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianlang_2008 2016-09-13
  • 打赏
  • 举报
回复
把倒数第二列中的null值用0填充下试试
jdsnhan 2016-09-08
  • 打赏
  • 举报
回复
引用 2 楼 sbaz 的回复:
我估计文件是windows下的,有回车和换行。 你在linux下导入,回车和后面的数字连在一起导入了,因为连在一起不是数字,所以报错了。
+1 其他不可见的制表符和打印符也会影响结果
超叔csdn 2016-09-07
  • 打赏
  • 举报
回复
我估计文件是windows下的,有回车和换行。 你在linux下导入,回车和后面的数字连在一起导入了,因为连在一起不是数字,所以报错了。
ghx287524027 2016-09-07
  • 打赏
  • 举报
回复
数据中怎么还有两个 ’,‘ 的,比如:0,800,,20
主要功能点: 不需要运行Oracle数据库软件,ODU直接读取数据库文件解析数据。 支持ASM,能够直接从ASM磁盘中导出数据,即使相关的磁盘组不能成功mount 支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件(包括控制文件、日志文件和归档日志等),即使相关的磁盘组不能成功mount 支持的Oracle数据库版本包括7,8i,9i,10g,11g 支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB支持Big Endian和Little Endian字节序 支持LOB分区,子分区 支持同一个表中,不同LOB列使用不同CHUNK SIZE的情况 CLOB数据可以导出到与其他列相同的文件中,或存储到单独的文件 LOB列在没有SYSTEM表空间的情况下仍然能够导出 LOB列在相关的lob index损坏的情况下依然能够导出 支持各种表,包括普通的HEAP表,IOT表和聚簇(CLUSTER)表 支持IOT表: 支持普通IOT表的导出 支持压缩IOT表的导出 支持IOT表溢出段 支持IOT表分区(包括子分区) 只能在有SYSTEM表空间时才能导出IOT表 支持压缩表 支持表被truncate后的数据恢复 支持表被drop后的数据恢复 在有SYSTEM表空间的情况下,自动获取数据字典信息 支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,ODU能够自动判断数据的类型 支持10g及以上的大文件(BigFile)表空间 全面支持64位系统,支持超过4G大小的数据文件。 支持复制操作系统命令不能复制的坏文件 支持同一个库中不同块大小的数据文件。 支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 自动检测数据文件的表空间号和文件号 导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL语句和SQL*Loader导入所需的control文件 模拟Oracle的dump块功能,能够dump数据文件中的数据块 支持DESC表,以显示表的列定义 支持列出表的分区和子分区
第一章:Oracle介绍 第二章:安装oracle软件 1.查看nls_lang select * from nls_session_parameters ...... 检测数据库 1.c:>sqlplus /nolog 2.sql>conn / as sysdba 3.sql>select open_mode from v$database; . . . . 二、导入导入表: #导入到hr impdp hr/hr directory=dump_dir dumpfile=tab.dmp tables=jobs #将hr导出的表导入到system 方案 impdp system/manager directory=dump_dir dumpfile=tab.dmp tables=hr.jobs remap_schema=hr:system 导入schemas: impdp hr/hr directory=dump_dir dumpfile=schema.dmp schemas=hr 把hr方案导入到system impdp system/manager directory=dump_dir dumpfile=schema.dmp schemas=hr remap_schema=hr:system 导入表空间 impdp system/manager directory=dump_dir dumpfile=tablespace.dmp tablespaces=users 导入数据库 impdp system/manager directory=dump_dir dumpfile=full.dmp full=y 三、外部表: bad file: 不符合规则的列 discard file: 过滤得列 1 . 创建目录 SQL> conn system/oracle Connected. SQL> create directory external_2 as 'D:\backup\exp'; 2. 授权 SQL> grant read,write on directory external_2 to hr; 3. sql>conn hr/hr 4. 创建外部表 create table extab_test3 (id number,name varchar2(20)) organization external (type oracle_loader default directory dump_dir access parameters (records delimited by newline badfile dump_dir:'empxt%a_%p.bad' logfile dump_dir:'expxt%a_%p.log' fields terminated by ',' missing field values are null (id,name)) location ('empxt2.dat')) 5. 查询数据 select * from extab_test3;
基本信息 书名:Oracle Database 11g完全参考手册 原价:158.00元 作者:罗尼(Kevin Loney) 出版社:清华大学出版社 出版日期:2010-06-01 ISBN:9787302221920 字数: 页码:1240 版次:1 装帧: 开本:16开 编辑推荐 《Oracle Database 11g完全参考手册》   安装Oracle Database ll g或从早期版本升级   创建数据库表、序列、索引、视图和用户账户   构造SQL语句、过程、查询和子查询   使用虚拟专用数据库和透明数据加密优化安全性   使用SQL*oader乘10racle Data Pump导入和导出数据   使用SQL重放、变更管理和缓存结果   使用闪回和自动撤消管理功能避免人为错误   构建和调整PL/SQL触发器、函数和程序包   使用Java、JDBC和XMIL开发数据库应用程序   使用Oracle实时应用群集(RAC)优化可用性和可扩展性 内容提要 《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQLSQL*Plus语句,如何使用大对象和对象,关系数据库。通过学习《Oracle Database 11g完全参考手册》,您可以了解如何实现最新的安全措施,如何调优数据库的性能,如何部署网格计算技术。附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3 可编程的结构 1.3 选择体系结构和选项 第2章 安装OracleDatabase11g和创建数据库 2.1 许可证和安装选项 2.2 使用OUI安装Oracle软件 第3章 升级到OracleDatabase11g 3.1 选择升级方法 3.2 升级之前的准备 3.3 运行升级前信息工具(Pre-UpgraInformationTool) 3.4 使用数据库升级助手(DBIUA) 3.5 执行手动直接升级 3.6 使用Export与Import 3.6.1 使用哪个EXport和Import版本 3.6.2 进行升级 3.7 使用数据复制法 3.8 升级完成之后的工作 第4章 规划OracIe应用程序方法、风险和标准 4.1 协作方法 4.2 每个人都有“数据 4.3 熟悉的Oracle语言 4.3.1 存储信息的表 4.3.2 结构化查询语言 4.3.3 简单的Oracle查询 4.3.4 为什么称作“关系 4.4 一些通用的、常见的示例 4.5 风险所在 4.6 新视角的重要性 4.6.1 变化的环境 4.6.2 代码、缩写和命名标准 4.7 如何减少混淆 4.7.1 规范化 4.7.2 表和列的英文名称 4.7.3 数据中的英文单词 4.8 名称和数据中的大写 4.9 规范化名称 4.10 人性化和优秀的设计 4.10.1 理解应用程序的任务 4.10.2 任务概要 4.11 理解数据 4.11.1 原子数据模型 4.11.2 原子业务模型 4.11.3 业务模型 4.11.4 数据项 4.11.5 查询和报告 4.12 关于对象名称的规范化 4.12.1 级别名称完整性 4.12.2 外键 4.12.3 单数名称 4.12.4 简洁 4.12.5 对象名辞典 4.13 智能键和列值 4.14 建议 第Ⅱ部分 SQLSQL*PIus 第5章 SQL中的基本语法 5.1 样式 5.2 创建NEWSPAJPER表 5.3 用SQL从表中选择数据 5.4 select、From、where和Orderby 5.5 逻辑和值 5.5.1 单值测试 5.5.2 值列表的简单测试 5.5.3 组合逻辑 5.6 wbLere的另一个用途:子查询 5.6.1 从子查询得到单值 5.6.2 从子查询得到值列表 5.7 组合表 5.8 创建视图 5.9 扩展视图 第6章 基本的SQL*Plus报表和命令 6.1 构建简单的报表 6.1.1 ①remarkl 6.1.2 ②setheadsep 6.1.3 ③ttitle和btitle 6.1.4 column 6.1.5 ④breakon 6.1.6 ⑨computeavg 6.1.7 ⑩setlinesize 6.1.8 setpagesize 6.1.9 setnewpage 6.1.10 ⑩spool 6.1.11 ⑥/**/ 6.1.1
第一部分 数据库体系结构 第1章 Oracle体系结构 1 1.1 数据库概述及实例 1 1.2 数据库 1 1.2.1 表空间 2 1.2.2 文件 2 1.3 实例 3 1.4 数据库内部结构 3 1.4.1 表、列和数据类型 4 1.4.2 约束条件 5 1.4.3 抽象数据类型 6 1.4.4 分区和子分区 7 1.4.5 用户 7 1.4.6 模式 8 1.4.7 索引 8 1.4.8 簇 9 1.4.9 散列簇 9 1.4.10 视图 9 1.4.11 序列 10 1.4.12 过程 10 1.4.13 函数 10 1.4.14 软件包 11 1.4.15 触发器 11 1.4.16 同义词 12 1.4.17 权限及角色 12 1.4.18 数据库链接 13 1.4.19 段、盘区和块 14 1.4.20 回滚段 14 1.4.21 快照和显形图 14 1.5 内部存储结构 15 1.5.1 系统全局区 15 1.5.2 环境区 17 1.5.3 程序全局区 17 1.6 后台进程 18 1.7 外部结构 20 1.7.1 重做日志 20 1.7.2 控制文件 21 1.7.3 跟踪文件与警告日志 21 1.8 基本数据库的实现 21 1.8.1 备份/恢复功能 22 1.8.2 安全性能 23 1.8.3 典型数据库逻辑设计 24 1.8.4 典型数据库物理设计 24 1.9 逻辑模型约定 25 1.9.1 一对一关系 25 1.9.2 一对多关系 26 1.9.3 多对多关系 26 1.10 创建数据库 27 1.10.1 修改创建模板的脚本文件 27 1.10.2 创建数据库后修改 MAXDATAFILES 27 1.10.3 使用OEM 28 第2章 硬件配置研究 30 2.1 结构概述 30 2.2 独立主机 31 2.2.1 磁盘阵列独立主机 31 2.2.2 磁盘镜像独立主机 34 2.2.3 多数据库独立主机 35 2.3 网络主机 36 2.3.1 数据库网络 37 2.3.2 远程更新:高级复制选项 39 2.3.3 集群服务器:Oracle并行服务器 40 2.3.4 多处理器:并行查询和并行装载 选项 41 2.3.5 客户机/服务器数据库应用 42 2.3.6 三层体系结构 43 2.3.7 Oracle透明网关访问 44 2.3.8 备用数据库 44 2.3.9 复制型数据库 45 2.3.10 外部文件访问 45 第3章 数据库逻辑设计 47 3.1 最终产品 47 3.2 优化软结构 47 3.2.1 起点:SYSTEM表空间 47 3.2.2 分离应用程序数据段:DATA 48 3.2.3 分离应用程序索引段:INDEXES 48 3.2.4 分离工具段:TOOLS 49 3.2.5 分离回滚段:RBS 50 3.2.6 分离临时段:TEMP 50 3.2.7 分离用户:USERS 51 3.3 扩展OFA 51 3.3.1 分离低使用的数据段:DATA_2 51 3.3.2 分离低使用的索引段:INDEXS_2 52 3.3.3 分离工具索引:TOOLS_1 52 3.3.4 分离特殊回滚段:RBS_2 53 3.3.5 分离用户特殊临时段: TEMP_USER 53 3.3.6 附加的应用特殊OFA扩展 54 3.4 合理的逻辑设计 54 3.5 解决方案 55 第4章 数据库物理设计 57 4.1 数据库文件设计 57 4.1.1 数据文件间的I/O冲突 57 4.1.2 所有数据库文件中的I/O瓶颈 59 4.1.3 后台进程中的并发I/O操作 61 4.1.4 定义系统恢复能力与性能目标 61 4.1.5 系统硬件及结构镜像的定义 62 4.1.6 识别专用于数据库的磁盘 62 4.1.7 选择正确的设计 63 4.2 I/O权值估计的检验 66 4.3 如何解决磁盘不足问题 69 4.4 解决方案 70 4.4.1 小型开发数据库设计 70 4.4.2 产品OLTP数据库设计 70 4.4.3 具有历史数据的产品OLTP数据库 设计 71 4.4.4 数据仓库设计 72

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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