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
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。