首页 > Oracle工具 > SQLLDR数据类型

SQLLDR数据类型

2014年7月29日 发表评论 阅读评论

今天使用Oracle提供的sqlldr将CSV文件导入到数据库中,因为表的列信息有字符类型也有数值类型,在写控制文件时也对于的加上了数据类型,控制文件如下:

load data
infile 'aa.csv'
into table student
fields terminated by ','
(
id number,
name varchar2(10)
)

表结构:

create table STUDENT
(
  ID   NUMBER,
  NAME VARCHAR2(10)
)

结果运行时直接报错了,报错信息如下:

c:\>sqlldr scott/tiger control=aa.ctl

SQL*Loader: Release 11.2.0.1.0 - Production on Mon Jul 28 22:35:27 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-350: Syntax error at line 6.
Expecting "," or ")", found "number".
id number,
   ^

大概的意思是不识别,感觉很奇怪怎么识别不了number类型,查了下文档原来sqlldr有自己的数据类型,例如整数类型是INTEGER EXTERNAL,字符类型是CHAR
常见的数据类型:
CHAR  字符类型可以描述数据中的VARCHAR2 或 CHAR 列
DATE   日期类型可以描述数据库的DATE列
INTEGER EXTERNAL 整数类型
FLOAT EXTERNAL 浮点类型
DECIMAL EXTERNAL 小数
修改控制文件:

load data
infile 'aa.csv'
into table student
fields terminated by ','
(
id INTEGER EXTERNAL,
name CHAR
)

重新执行一切OK了。
如果在服务器端执行,可以使用silent参数屏蔽输出的信息,执行完后可以直接看日志文件

c:\>sqlldr scott/tiger control=aa.ctl slient=all
分类: Oracle工具 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.