當前位置:首頁 » 編程語言 » sqlloader522
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlloader522

發布時間: 2022-07-28 21:18:06

㈠ 如何使用 sql*Loader 工具

SQL*Loader是Oracle資料庫導入外部數據的一個工具.它和DB2的Load工具相似,但有更多的選擇,它支持變化的載入模式,可選的載入及多表載入.

如何使用 SQL*Loader 工具
我們可以用Oracle的sqlldr工具來導入數據。例如:
sqlldr scott/tiger control=loader.ctl
控制文件(loader.ctl) 將載入一個外部數據文件(含分隔符). loader.ctl如下:
load data
infile 'c:\data\mydata.csv'
into table emp
fields terminated by "," optionally enclosed by '"'
( empno, empname, sal, deptno )

mydata.csv 如下:
10001,"Scott Tiger", 1000, 40
10002,"Frank Naude", 500, 20
下面是一個指定記錄長度的示例控制文件。"*" 代表數據文件與此文件同名,即在後面使用BEGINDATA段來標識數據。
load data
infile *
replace
into table departments
( dept position (02:05) char(4),
deptname position (08:27) char(20)
)
begindata
COSC COMPUTER SCIENCE
ENGL ENGLISH LITERATURE
MATH MATHEMATICS
POLY POLITICAL SCIENCE
Unloader這樣的工具
Oracle 沒有提供將數據導出到一個文件的工具。但是,我們可以用SQL*Plus的select 及 format 數據來輸出到一個文件:
set echo off newpage 0 space 0 pagesize 0 feed off head off trimspool on
spool oradata.txt
select col1 || ',' || col2 || ',' || col3
from tab1
where col2 = 'XYZ';
spool off

另外,也可以使用使用 UTL_FILE PL/SQL 包處理:
rem Remember to update initSID.ora, utl_file_dir='c:\oradata' parameter
declare
fp utl_file.file_type;
begin
fp := utl_file.fopen('c:\oradata','tab1.txt','w');
utl_file.putf(fp, '%s, %s\n', 'TextField', 55);
utl_file.fclose(fp);

㈡ SQL*Loader-522 是什麼錯誤

二種可能,分別如下:

1,由於目標路徑根本不存在,SQL×Loader報此錯誤;

2,若不是1,就是SQL× Loader用戶無創建文件的許可權.

㈢ SQL*Loader-522 是什麼錯誤

沒有修改文件或文件 夾的許可權

SQL*Loader-522: lfiopn failed for file (adsP_T.log - shahaizimxm的專欄 - 博客頻道 - CSDN.NET
http://blog.csdn.net/xiangmin_meng/article/details/5441868

㈣ sql*loader是個什麼東西

sql*loader 是一個程序, 用來把 文本文件裡面的數據, 導入到 Oracle 資料庫裡面。

下面是一個簡單的例子:

SQL*Loader

首先需要一個 控制文件test_main.ctl,內容如下:
LOAD DATA
INFILE *
INTO TABLE test_main
FIELDS TERMINATED BY ','
(ID, VALUE)
BEGINDATA
1,Test

其中,
第一行LOAD DATA意思是告訴SQL*Loader,要幹啥? 這里是載入數據。
第二行INFILE *意思是數據從哪裡來? 這里是包含在控制文件中。
第三行INTO TABLE 意思是數據要導到哪裡? 這里是要到 test_main 表。
第四行FIELDS TERMINATED BY意思是數據之間用什麼符號分隔? 這里是用 逗號 分隔。
第五行是數據要按什麼順序寫到列裡面
第六行BEGINDATA是告訴SQL*Loader,後面的都是數據了。

然後開始運行 sqlldr 程序

D:\temp>sqlldr userid=test/test123 control=test_main.ctl
SQL*Loader: Release 10.2.0.1.0 - Proction on 星期日 3月 13 14:58:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL*Loader-601: 對於 INSERT 選項, 表必須為空。表 TEST_MAIN 上出錯

在 SQL Plus 中,
SQL> truncate table test_main;
表被截斷。
以後,再次測試執行

D:\temp>sqlldr userid=test/test123 control=test_main.ctl
SQL*Loader: Release 10.2.0.1.0 - Proction on 星期日 3月 13 14:58:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
達到提交點 - 邏輯記錄計數 1

㈤ SQL*Loader-522 是什麼錯誤

可能的原因:
1,由於目標路徑根本不存在,SQL×Loader報此錯誤;
2,不是1,只是SQL× Loader用戶無創建文件的許可權
或者不要寫log文件直接load就好

㈥ 如何使用SQLloader導入數據

1、打開要導出為oracle的Excel,將Excel文件保存為test.txt文件(文件->另存為)

2、創建SQL*Loader輸入數據所需要的文件,均保存到C:,用記事本編輯:

控制文件:input.ctl,內容如下:

load data--1、控制文件標識

infile 'test.txt' --2、要輸入的數據文件名為.txt,注意路徑

append intotable Table_Name --3、向oracle表中追加記錄

fields terminatedby X'09' --4、欄位終止於X'09',是一個製表符(TAB)

(Col1,Col2…) 定義列對應順序

a、insert,為預設方式,在數據裝載開始時要求表為空

b、append,在表中追加新記錄

c、replace,刪除舊記錄,替換成新裝載的記錄

d、truncate,同上

3、在DOS窗口下使用SQL*Loader命令實現數據的輸入

C:>sqlldr userid=system/managercontrol=input.ctl

默認日誌文件名為:input.log

默認壞記錄文件為:input.bad

4、ok,現在就可以查看數據是否導入了。

ORACLESQL Loader的詳細語法

SQL*LOADER是ORACLE的數據載入工具,通常用來將操作系統文件遷移到ORACLE資料庫中。SQL*LOADER是大型數據倉庫選擇使用的載入方法,因為它提供了最快速的途徑(DIRECT,PARALLEL)。

要使用SQL*Loader,必須編輯一個控制文件(.ctl),及一個數據文件(.dat)

首先,我們認識一下SQL*LOADER

在windows下,SQL*LOADER的命令為SQLLDR,在UNIX下一般為sqlldr/sqlload。

如執行:d:\oracle>sqlldr

用法: SQLLOAD 關鍵字=值 [,keyword=value,...]

例如:>sqlldr user/pass
control=控制文件名 log=日誌文件名

SQL*LOADER參數列表

參數名稱

功能描述

Userid

資料庫用戶名及口令

Control

控制文件名稱,描述數據載入的文件信息

Log

日誌文件名稱,用於記錄數據載入過程的信息

Bad

壞信息文件名稱,用於記錄不符合要求的數據信息

Data

數據文件名稱,記錄要載入的原始數據

Discard

丟掉文件名稱,記載了不滿足條件而被過濾的數據

Discardmax

允許丟掉數據量,默認為全部丟掉

Skip

跳過幾個邏輯記錄,預設為0

Load

要載入的記錄數,默認為全部載入

Errors

允許出現的錯誤數,預設為50

Direct

是否使用直接路徑載入數據,默認為false

Readsize

緩沖區大小默認為1048576位元組

1、首先創建空表

SQL>create table stu(stunonumber(5),name varchar(10),addr
varchar(20));

數據文件格式分為自由格式和固定格式

固定格式數據文件(mydata.txt)

001 SHUI LIAOHE

002 LIU BEIJING

其控制文件分別如下

#Load.ctl

Load data

Infile mydata.txt

Into table stu

(stuno position(01:03) integer external,

Name position(05:08) varchar,

Addr position(10:16) varchar)

導入數據

>sqlldr test1/test1 control=』d:\load.ctl』log=』d:\load.log』

自由格式數據文件(mydata.txt)

003,」shuics」,」new york」

004,」liujianxin」,」Beijing」

005,」shuiym」,」Canada」

其控制文件如下

#load.ctl

Load data

Infile mydata.txt

Append|insert|replace|truncate

Into table stu

Fields terminated by 『,』

Optionally enclosed by 『」』

(stuno,name,addr)

導入數據

將Excel數據載入到oracle資料庫

1、將excel文件另存為文本文件(製表符分隔)

2、創建控制文件如下

Load data

Infile 『book.txt』

Append

Into table stu

Fields terminated by X』09』

(stuno,name,addr)
其中X』09』是一個製表符(TAB)

㈦ sqlloader 字元集都有哪些

sql*loader 是一個程序, 用來把 文本文件裡面的數據, 導入到 Oracle 資料庫裡面。

下面是一個簡單的例子:

SQL*Loader

首先需要一個 控制文件test_main.ctl,內容如下:
LOAD DATA
INFILE *
INTO TABLE test_main
FIELDS TERMINATED BY ','
(ID, VALUE)
BEGINDATA
1,Test

其中,
第一行LOAD DATA意思是告訴SQL*Loader,要幹啥? 這里是載入數據。
第二行INFILE *意思是數據從哪裡來? 這里是包含在控制文件中。
第三行INTO TABLE 意思是數據要導到哪裡? 這里是要到 test_main 表。
第四行FIELDS TERMINATED BY意思是數據之間用什麼符號分隔? 這里是用 逗號 分隔。
第五行是數據要按什麼順序寫到列裡面
第六行BEGINDATA是告訴SQL*Loader,後面的都是數據了。

然後開始運行 sqlldr 程序

D:\temp>sqlldr userid=test/test123 control=test_main.ctl
SQL*Loader: Release 10.2.0.1.0 - Proction on 星期日 3月 13 14:58:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL*Loader-601: 對於 INSERT 選項, 表必須為空。表 TEST_MAIN 上出錯

在 SQL Plus 中,
SQL> truncate table test_main;
表被截斷。
以後,再次測試執行

D:\temp>sqlldr userid=test/test123 control=test_main.ctl
SQL*Loader: Release 10.2.0.1.0 - Proction on 星期日 3月 13 14:58:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
達到提交點 - 邏輯記錄計數 1

㈧ SQL*Loader-522 是什麼錯誤

使用demo用戶登陸OS
切換到demo用戶的主目錄/home/demo下
(此目錄下有兩個文件test.ctl和test.dat
其中test.ctl是SQL*Loader的控制文件
test.dat是SQL*Loader用到的數據文件)
執行如下命令:
sqlldr test/test control=test.ctl