对于oraclesqlload导入数据感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍oracle的sqlload导入详解,并为您提供关于Centos6.7安装oracle11gR2及配置开机启
对于oracle sqlload 导入数据感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍oracle的sqlload导入详解,并为您提供关于Centos6.7安装oracle11gR2及配置开机启动、新建表空间和用户、导入数据、django导出数据 导入数据、impdp 导入数据 覆盖,追加等操作、Mongoexport 导出数据,Mongoimport 导入数据,mongodump 备份数据,mongorestore 恢复恢复的有用信息。
本文目录一览:- oracle sqlload 导入数据(oracle的sqlload导入详解)
- Centos6.7安装oracle11gR2及配置开机启动、新建表空间和用户、导入数据
- django导出数据 导入数据
- impdp 导入数据 覆盖,追加等操作
- Mongoexport 导出数据,Mongoimport 导入数据,mongodump 备份数据,mongorestore 恢复恢复
oracle sqlload 导入数据(oracle的sqlload导入详解)
sqlload导入大量数据确实有大量优势,是一个比较好的工具。
1 public class OracleLoadDataHelperUntil {
2
3 private static String databaseUrl = ProperUtil.getValue("db.properties", "jdbc.url");
4
5 private static String user = ProperUtil.getValue("db.properties", "jdbc.username");
6
7 private static String pwd = ProperUtil.getValue("db.properties", "jdbc.password");
8
9 private static String driver = ProperUtil.getValue("db.properties", "jdbc.driver");
10
11 private static String fileRoute = "";
12
13 /**
14 * 链接数据库地址
15 */
16 private static String baseUrl = "";
17
18 public OracleLoadDataHelperUntil() {
19
20 }
21
22 static {
23 try {
24 String url = databaseUrl.substring(databaseUrl.indexOf("@"));
25 baseUrl = url.replaceAll("@", "//").substring(0, url.lastIndexOf(":")+1) + "/"
26 + url.substring(url.lastIndexOf(":") + 1);
27 Class.forName(driver);
28 } catch (ClassNotFoundException e) {
29 e.printStackTrace();
30 }
31 }
32
33 /**
34 * 根据表名称获取数据库字段
35 *
36 * @param tableName
37 * @return
38 * @throws Exception
39 */
40 private static List<String> getFieldsByTableName(String tableName) throws Exception {
41 List<String> fields = Lists.newArrayList();
42 Connection conn = DriverManager.getConnection(databaseUrl, user, pwd);
43 String sql = "select COLUMN_NAME from USER_TAB_COLUMNS where TABLE_NAME=upper(''" + tableName + "'')";
44 Statement stmt = conn.createStatement();
45 ResultSet rs = stmt.executeQuery(sql);
46 String filed = "";
47 while (rs.next()) {
48 filed = rs.getString("COLUMN_NAME");
49 fields.add(filed);
50 }
51 rs.close();
52 conn.close();
53 return fields;
54 }
55
56 /**
57 * 获取控制命名字符串
58 *
59 * @param fileName 导入的文件名,全路径
60 * @param tableName 表名
61 * @param delimiter 分割符
62 * @return
63 */
64 private static String getStrCtr(String fileName, String tableName, String delimiter, List<String> fileds) {
65 StringBuffer sb = new StringBuffer();
66 String lineSeparator = System.getProperty("line.separator");
67 // 0是从第一行开始 1是 从第二行
68 sb.append("OPTIONS (skip=0)").append(lineSeparator);
69 // 加载数据文件
70 sb.append("LOAD DATA").append(lineSeparator);
71 // 防止中文乱码
72 sb.append("CHARACTERSET ZHS16GBK").append(lineSeparator);
73 sb.append("INFILE ").append("\''").append(fileName).append("\''").append(lineSeparator);
74 if(Strings.isStringEmpty(delimiter)) {
75 sb.append("\"str X''170A''\"").append(lineSeparator);
76 }
77 // 覆盖写入
78 sb.append("APPEND INTO TABLE ").append(tableName).append(lineSeparator);
79 sb.append("REPLACE").append(lineSeparator);
80 // 数据中每行记录用","分隔 ,TERMINATED用于控制字段的分隔符,可以为多个字符。
81 if(Strings.isStringEmpty(delimiter)) {
82 sb.append("FIELDS TERMINATED BY X''lib''").append(lineSeparator);
83 }else {
84 sb.append("FIELDS TERMINATED BY ''"+delimiter+"''").append(lineSeparator);
85 }
86 // 将数据写入对应的字段
87 sb.append("trailing nullcols ( ").append(lineSeparator);
88 sb.append(getFieldsStr(fileds)).append(lineSeparator);
89 sb.append(")");
90
91 return sb.toString();
92 }
93
94
95 private static String getFieldsStr(List<String> fileds) {
96 StringJoiner sj = new StringJoiner("," + System.getProperty("line.separator"));
97 for (String s : fileds) {
98 sj.add(s);
99 }
100 return sj.toString();
101 }
102
103 /**
104 * 获取控制文件的路径
105 *
106 * @param fileRoute 数据文件地址路径
107 * @param fileName 数据文件名
108 * @param tableName 表名
109 * @param delimiter 分隔符
110 * @param fieldNames 属性集合
111 * @param ctlfileName 控制文件名
112 * @return
113 */
114 private static String getCtlFileUrl(String fileRoute, String fileName, String tableName, String delimiter,
115 List<String> fieldNames, String ctlfileName) {
116 String ctlFileUrl = "";
117 FileWriter fw = null;
118 try {
119 String strctl = getStrCtr(fileRoute + fileName, tableName, delimiter, fieldNames);
120 fw = new FileWriter(fileRoute + "" + ctlfileName);
121 fw.write(strctl);
122 ctlFileUrl = fileRoute + "" + ctlfileName;
123 } catch (IOException e) {
124 e.printStackTrace();
125 } finally {
126 try {
127 fw.flush();
128 fw.close();
129 } catch (IOException e) {
130 e.printStackTrace();
131 }
132 }
133 return ctlFileUrl;
134 }
135
136 /**
137 * 判断是什么系统,true 为windows,false为linux
138 *
139 * @return
140 */
141 private static Boolean isOsWin() {
142 Boolean flag = Boolean.FALSE;
143 String os = System.getProperty("os.name");
144 if (os.toLowerCase().startsWith("win")) {
145 flag = Boolean.TRUE;
146 }
147 return flag;
148 }
149
150 /**
151 *
152 * @param fileRoute 文件路径
153 * @param ctlfileName 控制文件路径
154 * @param logfileName 日志文件路径
155 * @param flag 是否立即执行,true执行命令,false不执行
156 * @return sqlload的执行语句
157 */
158 private static String excuteLoadData(String fileRoute, String ctlfileName, String logfileName, boolean flag) {
159 InputStream ins = null;
160 Process process = null;
161 String dos = "sqlldr " + user + "/" + pwd + "@" + baseUrl + " control=" + fileRoute + "" + ctlfileName + " log="
162 + fileRoute + "" + logfileName;
163 System.out.println("dos:" + dos);
164 if(flag==false) {
165 return dos;
166 }
167 try {
168 if (isOsWin().equals(Boolean.FALSE)) {
169 process = Runtime.getRuntime().exec(dos);
170 } else {
171 String[] cmd = new String[] { "cmd.exe", "/C", dos };
172 process = Runtime.getRuntime().exec(cmd);
173 }
174 ins = process.getInputStream();
175 Charset charset=Charset.forName("GBK");
176 BufferedReader reader = new BufferedReader(new InputStreamReader(ins,charset));
177 String line = null;
178 while ((line = reader.readLine()) != null) {
179 String msg = new String(line.getBytes(), "GBK");
180 System.out.println(line);
181 }
182 int exitValue = process.waitFor();
183 if (exitValue == 0) {
184 System.out.println("返回值:" + exitValue + "\n数据导入成功");
185
186 } else {
187 System.out.println("返回值:" + exitValue + "\n数据导入失败");
188 }
189 process.getOutputStream().close();
190 } catch (Exception e) {
191 e.printStackTrace();
192 }
193 return dos;
194 }
195
196 /**
197 *
198 * 执行sqlload数据导入方法
199 *
200 * @param filePath 文件根路径
201 * @param fileName 数据文件 .dat文件
202 * @param tableName 表名
203 * @param fieldNames 属性字段
204 * @param flag 是否立即执行,true执行命令,false不执行
205 * @return sqlload的执行语句
206 * @throws Exception
207 */
208
209 public static String excuteSqlLoadImportData(String filePath, String fileName, String tableName,String delimiter,List<String> fields, boolean flag) throws Exception {
210 String str = "";
211 String ctlfileName = tableName + ".ctl";
212 String logfileName = tableName + ".log";
213 if (Strings.isStringEmpty(filePath)) {
214 filePath = fileRoute;
215 }
216 if(CollectionUtils.isEmpty(fields)) {
217 fields=getFieldsByTableName(tableName);
218 }
219 String fileUrl = getCtlFileUrl(filePath, fileName, tableName, delimiter, fields, ctlfileName);
220 if (!Strings.isStringEmpty(fileUrl)) {
221 str = excuteLoadData(filePath, ctlfileName, logfileName, flag);
222 }
223 return str;
224 }
225
226 }
Centos6.7安装oracle11gR2及配置开机启动、新建表空间和用户、导入数据
版本:
Centos6.7(桌面版);oracle11gR2(两个压缩包);jdk1.7
1. 软件准备:
java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03,mixed mode)
[c6-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS_6.7_Final gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-63. 下载oracle11g的安装文件,并拷贝到/opt目录下面:
yum install gcc -y
5. 安装org,这个不一定需要,不过我安装了(应该不需要安装):
yum install xorg-x11-apP* -y
2. 安装oracle
groupadd oracle useradd -g oracle -s /bin/bash oracle -m
2. 新建oracle安装目录并指定oracle权限
mkdir /usr/oracle chmod -R oracle:oracle /usr/oracle
su oracle ./runInstaller
4. 出现NoClassDefFoundError的错误
3.配置oracle开机启动
#!/bin/bash # description: Startup Script for Oracle Databases # /etc/init.d/oracle export ORACLE_SID=orcl.centos.com export ORACLE_BASE=/usr/oracle export ORACLE_HOME=/usr/oracle/app/oracle/product/11.2.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin case "$1" in start) su oracle -c $ORACLE_HOME/bin/dbstart touch /var/lock/oracle echo "OK" ;; stop) echo -n "Shutdown Oracle: " su oracle -c $ORACLE_HOME/bin/dbshut rm -f /var/lock/oracle echo "OK" ;; *) echo "Usage: 'basename $0' start|stop" exit 1 esac exit 0
注意修改ORACLE_SID 以及 oracle_base 、oracle_home的路径;
chkconfig --add /etc/rc.d/init.d/oracle chkconfig oracle on
4. 开机重启,再次使用客户端连接oracle查看是否开机启动;
4. 新建表空间及用户
createtablespacetest_my datafile'/home/app/oracle/oradata/oracle11g/test_my01.dbf'size800M autoextendon next50M maxsizeunlimited
2. 因为有时数据过大,需要添加文件,可以使用:
altertablespacetest_myadd datafile'/home/app/oracle/oradata/oracle11g/test_my02.dbf'size800M autoextendonnext50M maxsize1000M;
3. 新建用户,例如test_user:
create user test_user identified by test_user default tablespace test_my;
grant dba to test_user;
5. 导入/导出数据
导出:(user代表用户,password代码密码,ip即oracle服务器ip,database即oracle的SID,file可以自己指定路径)Exp user/password@ip:1521/database file=/opt/test.dmp导入:
imp user/password@ip:1521/database file =/opt/test.dmp fromuser=test_user touser=test_user ignore=y
分享,成长,快乐
脚踏实地,专注
django导出数据 导入数据
<table><tbody><tr>
<td><pre>1
2
总结
以上是小编为你收集整理的django导出数据 导入数据全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
impdp 导入数据 覆盖,追加等操作

impdp 导入数据 覆盖,追加等操作
zkk1973
于 2018-11-17 13:47:31 发布 30330
收藏 37
分类专栏: oracle 文章标签: oracle impdp 追加数据
版权
oracle 专栏收录该内容
5 篇文章 0 订阅
订阅专栏
oracle10g 之后 impdp 的 table_exists_action 参数
impdp username/password table_exists_action=truncate directory=DATA_PUMP_DIR dumpfile=expdpfilename.dmp logfile=implog.log
table_exists_action:
skip 是如果已存在表,则跳过并处理下一个对象;
append 是为表增加数据;
truncate 是截断表,然后为其增加新数据;
replace 是删除已存在表,重新建表并追加数据;
————————————————
版权声明:本文为 CSDN 博主「zkk1973」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zkk1973/article/details/84184157
Mongoexport 导出数据,Mongoimport 导入数据,mongodump 备份数据,mongorestore 恢复恢复
一:Mongoexport 导出数据
1, 导出 json 数据
mongoexport -d db -c collection -o save-file.dat
2, 导出 CSV 数据
mongoexport -d db -c collection --type=csv -f field1,field2 -o save-file.dat
说明:db 目标数据库,collection 目标集合,save-file.dat 要保存的文件,--type 指定导出的格式,默认是 json,-f 后面是需要导出的字段名称,多个字段名用逗号隔开
二:mongoimport 导入数据
1, 导入 json 数据
mongoimport -d db -c collection --file save-file.dat
2, 导入 CSV 数据
mongoimport -d db -c collection --type=csv --headerline --file save-file.dat
说明:db 目标数据库,collection 目标集合,save-file.dat 要导入的文件,--type 指定导出的格式,默认是 json,--headerline 批明不导入第一行
三:Mongodump 备份数据
mongodump -d db
mongodump -d db -o save-dir
说明:db 目标数据库,save-dir 要保存的文件目录,默认是 dump
四:Mongorestore 备份数据
mongorestore -d db
mongorestore -d db save-dir
说明:db 目标数据库,save-dir 要保存的文件目录,默认是 dump
今天关于oracle sqlload 导入数据和oracle的sqlload导入详解的分享就到这里,希望大家有所收获,若想了解更多关于Centos6.7安装oracle11gR2及配置开机启动、新建表空间和用户、导入数据、django导出数据 导入数据、impdp 导入数据 覆盖,追加等操作、Mongoexport 导出数据,Mongoimport 导入数据,mongodump 备份数据,mongorestore 恢复恢复等相关知识,可以在本站进行查询。
本文标签: