oracle12c:通過oracle客戶端工具配置tns,並使用sqlldr進行批量導入數據


通過oracle客戶端工具配置tns:

進入oracle配置工具“Net Configuration Assistant”-》

點擊“下一步”,完成tns配置。

測試是否tns可用

命令:tnsping tns配置名稱

 1 C:\Users\Administrator>tnsping dt_dns_name
 2 TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 10-JAN-2018 05:36:27
 3 Copyright (c) 1997, 2014, Oracle.  All rights reserved.
 4 Used parameter files:
 5 C:\app\Administrator\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora
 6 
 7 Used TNSNAMES adapter to resolve the alias
 8 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
 9 (HOST = 10.xx.xx.xx)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = dt_dns_name)
10 ))
11 OK (20 msec)
12 
13 C:\Users\Administrator>

使用sqlldr進行數據導入:

sqlldr userid=account/password@tnsname direct=true rows=20000 streamsize=10485760 date_cache=5000 errors=9999 control='filename.ctl' log='th.log'

備注:

account--oracle account‘;

password--oracle account password;

tnsname--oracle tns name;

direct=true  --是否鎖表進行導入;

rows=20000 --表示20000條記錄提交一次;

control='filename.ctl' --表示導入ctl文件;

log='lh.log'  --表示日志存放位置。

filename.ctl

LOAD DATA
characterset UTF8
infile 'C:\Users\Administrator\Desktop\work\mr_grid_result20170106\000001_0'
APPEND INTO TABLE myoracletablename
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
gridid,
gridx,
gridy,
height,
BuildingId,
p_day date "yyyymmdd"
)

注意:

1)以上操作都是在windows的cmd下操作的命令;

2)使用時,需要注意被導入文件名在windows下要求以“*.dat”結束;

3)如果需要文件批量重名,可以使用:for /f %%i in ('dir /b ') do (ren %%i %%i.dat),對當前目錄下的所有文件添加后綴‘.dat’。

 備注:

當導入oracle分區時,當目標表之前已經包含了分區20180104,20180105,20180106時,刪除了分區20180105

alter table 目標表 drop partition 20180105

,之后再插入數據會拋出異常,原因:目標oid字段是oid是自增自動,pk。

解決錯誤方案:

alter index 索引名稱(唯一、自增主鍵)rebuild

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM