ORACLE 外部表

这个错误的解决办法,我的程序创建一个外部表代码如下:

我用的是SCOTT TIGER 用户,在SQLPLUS下进入到此用户 一定要用DBA方式进入,如果在DOS模式下则输入

SET ORACLE_SID=JAMES//你可以用你自己数据库的服务名 我用的是JAMES

SQLPLUS  

请输入用户名:SCOTT AS SYSDBA

请输入密码:TIGER

进入。。。。。

SQL>CREATE DIRECTORY EXTDIR AS 'D:/SQL/';//创建目录对象

SQL>GRANT READ, WRITE ON DIRECTORY EXTDIR TO SCOTT;//授予用户读写权限

 

SQL>CREATE TABLE EXT_BIGTBL//创建一个外部表
   ( OWNER VARCHAR2(30), //注意这里一定不要有什么¥#%&*@这类的符号 要不它就说什么HASH什么EXCEPTION 我一开始就

//定义了一个OWNER#  就出错误啦
 NAME VARCHAR2(50),
 OBJ NUMBER,
 CTIME DATE,
        STATUS VARCHAR2(10)
   )
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY EXTDIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
(
        OWNER,
 NAME,
 OBJ,
 CTIME CHAR(255) DATE_FORMAT DATE MASK 'YYYY-MM-DD HH24:MI:SS',
        STATUS
)
)
LOCATION('ldr_object1.csv')
)REJECT LIMIT UNLIMITED ;

 

 

 

ORA-29913: 执行ODCIEXTTABLEFETCH 调出时出错

这时候出现了一个这么个错误,我搞了一上午结果是ldr_object1.csv文件中有空白 一定要把其中的空白去掉才可以,这点比较恶心你想用外部表就必须这么做,如果你用SQLLDR 的话就可以在这么设置

load data
infile ldr_object1.csv
truncate into table objects
fields terminated by "," optionally enclosed by '"' TRAILING NULLCOLS
(
owner#,name,obj#,ctime date 'yyyy-mm-dd hh24:mi:ss',
status
)

红色的字体的代码就是忽略空格的意思。所以要想用先进的技术就不得不恶心点。用外部表来快速的进行导入数据就要把文件作的规范些这样才能成功的导入。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值