标签: sql-loader

为什么我会使用SQL*Loader传统的加载路径?

我对SQL*Loader的传统路径的理解是它只是生成INSERT语句并将它们发送到数据库.使用它是否有任何性能优势,而不仅仅是以编程方式生成SQL语句并对数据库执行它们?

oracle bulkinsert oracle10g sql-loader

2
推荐指数
1
解决办法
501
查看次数

Sql loader - 第二个机箱字符串不存在

我通过sql loader将.csv文件数据加载到oracle表中.其中一个字段的数据中有一个换行符(CRLF),因此得到以下错误:

第二个外壳字符串不存在

这是我的控制文件

load data
characterset UTF8
infile 'C:\Users\lab.csv'
truncate 
into table test_labinal
fields terminated by ";" optionally enclosed by '"' 
TRAILING NULLCOLS
      ( 

    STATEMENT_STATUS ,
    MANDATORY_TASK ,
    COMMENTS CHAR(9999)  "SubStr(:Comments, 0, 1000)"
)
Run Code Online (Sandbox Code Playgroud)

字段COMMENTS在其中一个记录中有一个新的行字符.任何人都可以为此提出解决方案.

谢谢

oracle sql-loader

2
推荐指数
1
解决办法
1万
查看次数

数据文件中的字段超过最大长度-错误

当我尝试将数据插入varchar2(4000)表中的一列大小时,出现错误"Field in data file exceeds maximum length"

数据=

1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,111,112,121,654,666,667,1001,1100,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1123,1124,1211,2001,2002,2003,2004,2028,2101,2102,2201,2202,2301,2302,2303,2401,2402,3001,3002,3003,3004,3010,3011,3012,3013,3020,3021,3022,3023,3024,3025,3030,3031,3032,3040,3041,3042,3043,3044,3045,3046,3047,3050,3051,3052,3053,3054,3055,3060,3061,3062,3070,3071,3072,3080,3081,3082,3083,3084,3090,3091,3092,3100,3102,3103,3110,3111,3112,3113,3120,3121,3122,3123,3130,3131,3132,5656,8040,9000`
Run Code Online (Sandbox Code Playgroud)

请帮助我解决此错误。

控制文件:

LOAD DATA
INFILE '$IN_DIR/$FILENAME'
BADFILE '$REJ_DIR/$FILENAME.bad'
APPEND
INTO TABLE test
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
  (
   FILE_RECORD_DESCRIPTOR               POSITION(1),
   LINE_NO                              FILLER,
   DEPT                                 TERMINATED BY "\n",
   SEQ_NO                               CONSTANT "1",
   DEPT_NO                              CONSTANT "0",
   STATUS                               CONSTANT "U",
   PROCESS_ID                           CONSTANT "2"
  )
Run Code Online (Sandbox Code Playgroud)

表结构。

  CREATE TABLE TEST
   (
   FILE_RECORD_DESCRIPTOR VARCHAR2(5)    NOT  NULL, 
   DEPT                   VARCHAR2(4000) NOT NULL, 
   SEQ_NO                 NUMBER         NOT NULL, 
   DEPT_NO                NUMBER(4,0),
   STATUS                 VARCHAR2(10), 
   ERROR_DETAIL           VARCHAR2(3000), 
   PROCESS_ID             NUMBER(8,0)
   );
Run Code Online (Sandbox Code Playgroud)

文件: …

oracle sql-loader

2
推荐指数
2
解决办法
1万
查看次数

为什么在运行sqlldr后禁用了我的外键?

在构建过程中,我们运行sqlldr用一些示例数据填充数据库。在sqlldr接触的每个表上,运行sqlldr后,将禁用外键。

根据此Ask Tom帖子

sqlldr将仅禁用与其他表相关的约束(例如:外键),而不禁用主键。

SQLLDR将仅重新启用IT禁用的约束,而不是您自己创建的约束。

我认为这意味着应该启用我的外键。

我们所有的sqlldr控制文件都与此类似:

options (direct=true, rows=20000)
load data
infile "clinical_code.txt"
append
into table clinical_code
fields terminated by "|"
trailing nullcols
Run Code Online (Sandbox Code Playgroud)

rows计数有意大于数据文件中的行数,因为如果较小,它将破坏我的主键

为什么sqlldr不像文档所示暗示那样重新启用我的外键?

如果需要,我可以编写SQL重新启用索引。我想知道为什么会这样。

使用传统的加载路径是一种不错的选择,但是这将使我们的构建过程增加2分钟的时间,如果可能的话,我希望避免这种情况。

oracle sql-loader

1
推荐指数
1
解决办法
3824
查看次数

SQL*Loader问题

我收到错误SQL*Loader -606,这意味着:

SQL*Loader控制文件中的INTO TABLE子句中指定的同义词通过数据库链接指定远程对象.只能在INTO TABLE子句中指定现有本地表的同义词.

有没有什么办法可以使用SQL*Loader插入到远程表中?

sql unix oracle sql-loader

1
推荐指数
1
解决办法
2419
查看次数

数据没有从sql加载器填充

我有一个控制文件,loader.ctl,in C:\oracle\product\10.2.0\oradata\orcl.

loader.ctl文件的内容是

 load data
 infile 'd:\mydata\test.csv'
 into table emp1
 fields terminated by "," optionally enclosed by '"'          
 ( empno, ename,job,mgr,hiredate,sal,comm,deptno )
Run Code Online (Sandbox Code Playgroud)

emp1 table已存在于数据库中,test.csv中有9条记录

我从sqlldr执行了loader.ctl:

在此输入图像描述

现在,当我检查我的数据库时,我发现没有记录emp1...为什么会这样?提交之后为什么表中没有填充数据?

oracle oracle10g sql-loader

1
推荐指数
1
解决办法
2万
查看次数

Oracle SQL Loader - 如何不显示"达到提交点 - 逻辑记录计数"计数

我正在从家里通过vpn从Oracle SQL Loader加载大文件,他们花了很多时间.当我从工作中加载它们时加载速度要快得多.我正在加载的文件已经在我的工作服务器上了.

所以我的想法是减速是因为为每一行打印的"达到提交点 - 逻辑记录计数".由于必须通过网络发送,因此必须很慢.我用谷歌搜索,但找不到任何方法来打印更少的.尝试添加rows = 5000作为参数,但我仍然得到每行的打印件.

如何打印较少的"达到提交点 - 逻辑记录计数"计数?

谢谢

sql oracle loader sql-loader

1
推荐指数
1
解决办法
2万
查看次数

如何通过sql loader导入excel文件时删除数据库中的标头

我有一个excel表格,其格式如下:

 

Name     Address     Phone#    Age
-----    -------     ------    ----
aaa      xxx          123...    11

bbb      yyy          345...    21

当我导入这个excel时,我有标题(姓名,地址,电话号码,年龄)作为表格的第一行.

我只想要没有标题的数据.

谁能请帮忙.

TA,

NISHANT

sql oracle sql-loader

1
推荐指数
1
解决办法
1万
查看次数

SQL * Loader-522:lfiopn文件失败

我正在运行SQLLDR的脚本中遇到以下错误:

SQL*Loader-522: lfiopn failed for file (/home/abc/test_loader/load/badfiles/TBLLOAD20150520.bad)
Run Code Online (Sandbox Code Playgroud)

据我所知,这是与权限相关的错误,但是我想知道文件夹“ / load”中没有“ badfiles”文件夹。我已经在load文件夹之外定义了badfiles文件夹,但是为什么在错误中是采取这个位置?就像我的输入文件有问题,SQLLDR试图在提及的位置创建一个错误的文件吗?

下面是SQLLDR命令:

$SQLLDR $LOADER_USER/$USER_PWD@$LOADER_HOSTNAME control=$CTLFDIR/CTL_FILE.ctl BAD=$BADFDIR/$BADFILE$TABLE_NAME ERRORS=
0 DIRECT=TRUE PARALLEL=TRUE LOG=$LOGDIR/$TABLE_NAME$LOGFILE &
Run Code Online (Sandbox Code Playgroud)

以下是控制文件temp:

LOAD DATA
INFILE '/home/abc/test_loader/load/FILENAME_20150417_001.csv' "STR '\n'"
APPEND   
INTO TABLE STAGING.TAB_NAME
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
  COBDATE,
--
--
--
  FUTUSE30 TERMINATED BY WHITESPACE
)  
Run Code Online (Sandbox Code Playgroud)

bash shell oracle11g sql-loader

1
推荐指数
1
解决办法
2万
查看次数

SQL*Loader-128:无法开始会话

我正在尝试使用SQL Loader从csv文件加载我的表中的数据.

<--- load.sh - >

ORACLE_HOME=/oracle/OraHome11g
export ORACLE_HOME
PATH=/oracle/OraHome11g/bin
export PATH
$ORACLE_HOME/bin/lsnrctl start
sqlldr RETAIL_FIN/RETAIL_FIN$123@ERDEV control=LBR.ctl
Run Code Online (Sandbox Code Playgroud)

<--- load.ctl - >

  load data
    infile '/home/tclfin/LBR.ctl'
    into table LOAN_BALANCE_MASTER_INT
    fields terminated by ',' optionally enclosed by '"'
    (ACCOUNT_NO,CUSTOMER_NAME,LIMIT)
Run Code Online (Sandbox Code Playgroud)

执行脚本后,我收到以下错误:

LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production on 27-MAY-2016 16:14:34

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started

SQL*Loader: Release 11.2.0.2.0 - Production on Fri May 27 16:14:34 2016

Copyright …
Run Code Online (Sandbox Code Playgroud)

unix oracle sql-loader

1
推荐指数
1
解决办法
5536
查看次数

标签 统计

sql-loader ×10

oracle ×9

sql ×3

oracle10g ×2

unix ×2

bash ×1

bulkinsert ×1

loader ×1

oracle11g ×1

shell ×1