标签: sql-loader

外部表与SQLLoader

因此,我经常需要将数据加载到保存表中以运行一些数据验证检查,然后返回结果.通常,我创建保存表,然后创建一个sqlldr控制文件并将数据加载到表中,然后运行我的查询.是否有任何理由我应该使用外部表格来代替?他们会以什么方式让我的生活更轻松?

oracle external-tables sql-loader

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

加载带有Windows行结尾的CSV文件时,Oracle Sql Loader"ORA-01722:无效编号"

我正在使用Linux shell中的Oracle Sql Loader Utility将csv数据加载到Oracle DB中.但我注意到,如果源csv文件行结尾为'\ r \n'(Windows格式),则sqlldr无法加载最后一列的数据.

例如,如果最后一列是FLOAT类型(在ctl文件中定义为'FLOAT EXTERNAL'),sqlldr将失败并显示'ORA-01722:无效数字':

Sqlldr ctl文件:

OPTIONS(silent=(HEADER))
load data
 replace
 into table fp_basic_bd
 fields terminated by "|" optionally enclosed by '"'
 TRAILING NULLCOLS
 (
 FS_PERM_SEC_ID CHAR(20),
 "DATE" DATE "YYYY-MM-DD", 
 ADJDATE DATE "YYYY-MM-DD", 
 CURRENCY CHAR(3),
 P_PRICE FLOAT EXTERNAL,
 P_PRICE_OPEN FLOAT EXTERNAL,
 P_PRICE_HIGH FLOAT EXTERNAL,
 P_PRICE_LOW FLOAT EXTERNAL,
 P_VOLUME FLOAT EXTERNAL
 )
Run Code Online (Sandbox Code Playgroud)

sqlldr执行命令:

sqlldr -userid XXX -data ./test.data -log ./test.log -bad ./test.errors -control test.ctl -errors 3 -skip_unusable_indexes -skip_index_maintenance
Run Code Online (Sandbox Code Playgroud)

sqlldr错误日志:

   Column Name                  Position   Len  Term Encl Datatype …
Run Code Online (Sandbox Code Playgroud)

oracle sql-loader

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

SQL Loader脚本帮助添加SYSDATE,USER

我正在尝试从文件加载数据,我想将CREATED_DATE和UPDATED_DATE设置为SYSDATE,将CREATE_BY和UPDATED_BY设置为USER

这是我正在使用的表格:

CREATE TABLE CATALOG
(CNO NUMBER,
CTITLE VARCHAR2(25),
CREATED_BY VARCHAR2(10) NOT NULL,
CREATED_DATE DATE NOT NULL,
UPDATED_BY VARCHAR2(10) NOT NULL,
UPDATED_DATE DATE NOT NULL,
CONSTRAINT CATALOG_PK Primary Key (CNO));
Run Code Online (Sandbox Code Playgroud)

这是数据文件:

1,"Title 1"
2,"Title 2"
3,"Title 3"
4,"Title 4"
5,"Title 5"
6,"Title 6"
Run Code Online (Sandbox Code Playgroud)

和我的控制文件:

LOAD DATA
 INFILE "mydata.csv"
 INTO TABLE CATALOG
 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'    
 (CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")
Run Code Online (Sandbox Code Playgroud)

当我尝试使用SQL Loader加载它时...所有记录都被拒绝:

Record 1: Rejected - Error on table CATALOG, column CREATED_BY.
Column …
Run Code Online (Sandbox Code Playgroud)

sql csv oracle controlfile sql-loader

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

加载了42亿条记录后,SQL*Loader卡住了

我们在sql loader中遇到了问题.我们试图在使用Sql Loader的某些条件的基础上,将大约46亿行(接近340 GB)的数据文件加载到2个oracle表中.但是在加载了42亿条记录之后,即使还要加载其余的记录,SQL加载程序进程也会完成而不会抛出任何错误.

也没有任何记录或不良记录.SQL Loader可以加载的记录数是否有限制?在任何地方都找不到任何这样的东西.如果有人对这个问题有任何线索,请告诉我.

谢谢!!

sql-loader

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

使用 Oracle SQL Loader (sqlldr) 加载 Unicode 字符会导致问号

我正在尝试使用 SQL Loader 将本地化字符串从 unicode(UTF8 编码)csv 加载到 Oracle 数据库中。我已经尝试了各种组合,但似乎没有给我我正在寻找的结果,即有特殊的希腊字符,如 (\xce\x94) 不会转换为 \xc3\x8e\xe2\x80\ x9d 或 \xc2\xbf。

\n\n

我的表定义如下所示:

\n\n
CREATE TABLE "GLOBALIZATIONRESOURCE"\n(\n    "RESOURCETYPE" VARCHAR2(255 CHAR) NOT NULL ENABLE,\n    "CULTURE"      VARCHAR2(20 CHAR) NOT NULL ENABLE,\n    "KEY"          VARCHAR2(128 CHAR) NOT NULL ENABLE,\n    "VALUE"        VARCHAR2(2048 CHAR),\n    "DESCRIPTION"  VARCHAR2(512 CHAR),\n    CONSTRAINT "PK_GLOBALIZATIONRESOURCE" PRIMARY KEY ("RESOURCETYPE","CULTURE","KEY") USING INDEX TABLESPACE REPSPACE_IX ENABLE\n)\nTABLESPACE REPSPACE; \n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经在我的控制文件中尝试了以下配置(实际上是我能想到的每个排列)

\n\n
load data\nTRUNCATE\nINTO TABLE "GLOBALIZATIONRESOURCE"\nFIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY \'"\'\nTRAILING NULLCOLS\n(   \n    "RESOURCETYPE" CHAR(255), \n    "CULTURE" CHAR(20), \n    "KEY" …
Run Code Online (Sandbox Code Playgroud)

csv oracle unicode sql-loader

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

带有utf8的SQL Loader

使用SQL*Loader加载日语数据时出现以下错误.我的数据库是UTF8(NLS参数),我的操作系统支持UTF8.

Record 5: Rejected - Error on table ACTIVITY_FACT, column METADATA.
ORA-12899: value too large for column METADATA (actual: 2624, maximum: 3500)
Run Code Online (Sandbox Code Playgroud)

我的控制文件:

load data
characterset UTF8
infile '../tab_files/activity_fact.csv' "STR ';'"
APPEND
into tableactivity_fact
fields terminated by ',' optionally enclosed by '~'
TRAILING NULLCOLS
(metadata CHAR(3500))
Run Code Online (Sandbox Code Playgroud)

我的桌子

create table actvuty_facr{
metadata varchar2(3500 char)
}
Run Code Online (Sandbox Code Playgroud)

为什么SQL Loader会抛出错误的异常,(actual: 2624, maximum: 3500).2624小于3500.

oracle utf-8 sql-loader

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

如何使用SQLDeveloper导入“加载程序”格式的数据?

如何使用SQL Developer以“加载程序”格式导入数据?

SQLDeveloper可以“加载程序”格式导出数据,因此我想重新导入它。

注意:我无法登录到运行Oracle DB的服务器,并且我没有sysdba特权。

import oracle-sqldeveloper sql-loader

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

安装sql loader linux

我试图在redhat机器上安装Oracle即时客户端.我有instantClient基本,sdk和sqlplus但我找不到任何sqlldr.有人可以帮我做吗?谢谢

oracle oracle11g sql-loader

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

在SQL*Loader控制文件中设置日期格式

我的csv文件有"2009年9月17日上午11:06:06"作为COMPLETED_ON变量

我正在使用sql loader将数据加载到oracle,如下所示:

LOAD DATA
INFILE 'c:/load/file_name.csv'
APPEND
INTO TABLE tbl_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
COMPLETED_ON DATE "not sure what to put here",
) 
Run Code Online (Sandbox Code Playgroud)

在oracle中我创建了如下列:

具有本地时区的"COMPLETED_ON"TIMESTAMP(0)

如何在控制文件中更改COMPLETED_ON日期?

oracle to-date sql-loader

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

使用sqlLoader将XML文件加载到xmltype字段中

我正在尝试将XML文件加载到oracle 11g中的XMLTYPE clob中.到目前为止,我想出了这个控制文件:

LOAD DATA 
INFILE 'stocknotify.xml'
append INTO TABLE order_input 
(
    xml LOBFILE(CONSTANT 'stocknotify.xml') TERMINATED BY EOF
)
Run Code Online (Sandbox Code Playgroud)

这个控制文件工作得很好,除了它加载XML文件7次.我想这是因为XML文件由7行组成,但是,我不知道如何阻止sql loader执行并只加载文件一次.

有任何想法吗?

xml oracle sql-loader

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