Java 操作 .ctl 檔案匯入資料
1. 資料庫表 users
-- Create table
create table USERS
(
id VARCHAR2(32),
name VARCHAR2(200),
password VARCHAR2(200),
sj VARCHAR2(200)
);
2. 資料檔案 users.txt ,中間使用的 "Tab" 符號
ID NAME PASSWORD SJ
1 Unmi 3 2018
2 Tony 5 2008
3 張三 8 2009
4 Kypfos 4 2009
5 李四 1 2008
3. ctl檔案 user.ctl
Options (skip=1) Load Data Infile 'C:/ctl/users.txt' Append into table USERS Fields terminated by X'09' Optionally enclosed by '"' Trailing nullcols (ID,NAME,PASSWORD,SJ)
4. 執行 Dos 命令
sqlldr.exe userid=scott/[email protected]:1521/ORCL control=C:/ctl/users.ctl log=C:/ctl/users.log
5. 執行結果圖
6. Java實現
package workbench.functions; import java.io.BufferedReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Sqlldr { /** * * @param args */ public static void main(String[] args) { // 寫控制檔案.ctl String fileRoute = "C:/ctl/"; // 檔案地址路徑 String fileName = "users.txt"; // 資料檔名 String tableName = "USERS"; // 表名 String fieldName = "(ID,NAME,PASSWORD,SJ)"; // 要寫入表的欄位 String ctlfileName = "users.ctl"; // 控制檔名 ctlFileWriter(fileRoute, fileName, tableName, fieldName, ctlfileName); // 要執行的DOS命令 String user = "scoot"; String psw = "tiger"; String database = "172.25.21.163:1521/ORCL"; // IP要指向資料庫伺服器的地址 String logfileName = "users.log"; executeDos(user, psw, database, fileRoute, ctlfileName, logfileName); } /** * * 寫控制檔案.ctl * @param fileRoute 資料檔案地址路徑 * @param fileName 資料檔名 * @param tableName 表名 * @param fieldName 要寫入表的欄位 * @param ctlfileName 控制檔名 */ public static void ctlFileWriter(String fileRoute, String fileName, String tableName, String fieldName, String ctlfileName) { FileWriter fw = null; String strctl = "Options (skip=1)" + "\n Load Data Infile '" + fileRoute + "" + fileName + "'" + "\n Append into table " + tableName + "" + "\n Fields terminated by X'09'" + "\n Optionally enclosed by '\"'" + "\n Trailing nullcols " + fieldName + ""; System.out.println(strctl); try { fw = new FileWriter(fileRoute + "" + ctlfileName); fw.write(strctl); } catch (IOException e) { e.printStackTrace(); } finally { try { fw.flush(); fw.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * * 呼叫系統DOS命令 * @param user * @param psw * @param Database * @param fileRoute * @param ctlfileName * @param logfileName */ public static void executeDos(String user, String psw, String database, String fileRoute, String ctlfileName, String logfileName) { InputStream ins = null; // 要執行的DOS命令 String cmd = "sqlldr.exe userid=" + user + "/" + psw + "@" + database + " control=" + fileRoute + ctlfileName + " log=" + fileRoute + logfileName; try { Process process = Runtime.getRuntime().exec(cmd); ins = process.getInputStream(); // 獲取執行cmd命令後的資訊 BufferedReader reader = new BufferedReader(new InputStreamReader(ins)); String line = null; while ((line = reader.readLine()) != null) { String msg = new String(line.getBytes("ISO-8859-1"), "UTF-8"); System.out.println(msg); // 輸出 } int exitValue = process.waitFor(); if (exitValue == 0) { System.out.println("返回值:" + exitValue + "\n資料匯入成功"); } else { System.out.println("返回值:" + exitValue + "\n資料匯入失敗"); } process.getOutputStream().close(); // 關閉 } catch (Exception e) { e.printStackTrace(); } } }
相關推薦
Java 操作 .ctl 檔案匯入資料
1. 資料庫表 users -- Create table create table USERS ( id VARCHAR2(32), name VARCHAR2(200), password VARCHAR2(200), sj
java操作hdfs檔案、資料夾
工具類HdfsUtils.java,及測試用例程式碼如下: HdfsUtils.java package com.xy6.demo.utils; import java.io.ByteArrayIn
Java上傳Excel檔案匯入資料
Controller中接收form表單提交的檔案域: public Map importConsumer(@RequestParam("file") MultipartFile file) 讀取Excel工具類 這裡我以Consumer實體類來寫,大家可以自行封裝: pub
POI 操作 EXCEL檔案(匯入、匯出)
1.1概述 開發中經常會設計到excel的處理,如匯出Excel,匯入Excel到資料庫中,操作Excel目前有兩個框架,一個是apache 的poi, 另一個是 Java Excel Apache POI 簡介是用Java編寫的免費開源的跨平臺的 Java API,Ap
分散式系統詳解--框架(Hadoop--JAVA操作HDFS檔案)
分散式系統詳解--框架(Hadoop--JAVA操作HDFS檔案) 前面的文章介紹了怎麼將整個集群系統搭建起來,並進行了有效的測試。為了解決登入一臺伺服器登入其他伺服器需要多次輸入密碼的
嘗試json檔案匯入資料
recommand.json { "music":[ { "releasetime":"2018年11月24日", "title":"某一天,靈夢從此丟失了節操", "description":"妖歷201
python操作txt檔案中資料教程[1]-使用python讀寫txt檔案
python操作txt檔案中資料教程[1]-使用python讀寫txt檔案 覺得有用的話,歡迎一起討論相互學習~Follow Me 原始txt檔案 程式實現後結果 程式實現 filename = './test/test.txt' contents = [] DNA_sequence
python操作txt檔案中資料教程[2]-python提取txt檔案
python操作txt檔案中資料教程[2]-python提取txt檔案中的行列元素 覺得有用的話,歡迎一起討論相互學習~Follow Me 原始txt檔案 程式實現後結果-將txt中元素提取並儲存在csv中 程式實現 import csv filename = "./test/te
python操作txt檔案中資料教程[3]-python讀取資料夾中所有txt檔案並將資料轉為csv檔案
python操作txt檔案中資料教程[3]-python讀取資料夾中所有txt檔案並將資料轉為csv檔案 覺得有用的話,歡迎一起討論相互學習~Follow Me 參考文獻 python操作txt檔案中資料教程[1]-使用python讀寫txt檔案 python操作txt檔案中資料教程[2]-pyth
java讀取配置檔案.properties資料
util.properties testkey=test123 java_web: import java.util.Properties; import org.springframework.stereotype.Component; /** * 獲取配置檔案資訊
Java實現Excel批量匯入資料
Excel的批量匯入是很常見的功能,這裡採用 Jxl實現,資料量或樣式要求較高可以採用 poi 框架環境:Spring + SpringMvc(註解實現) 首先匯入依賴jar包 <dependency> <groupId>ne
java操作PDF檔案 -- iText
iText是一種生成PDF報表的Java元件,通過iText不僅可以生成pdf檔案,而且可以將xml、html檔案轉換為pdf檔案。 生成PDF檔案 //Step 1—Create a Document. Document document = new Document();
MongoDB工具類:java操作對檔案的增刪查改
前言 1.MongoDB,是一個基於分散式檔案儲存的資料庫,是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富、最像關係資料庫的,它的特點是高效能、易部署、易使用,儲存資料非常方便。在實際的專案操作中,我們不僅能用來儲存各種複雜的
java實現將檔案或資料夾壓縮
由於專案需要,所以在網上找了一下看看有沒有java的壓縮檔案的例子,結果找到了一個,可以作為工具類直接使用,現將它釋出出來 public class UtilZipFile { private File targetFile; public UtilZi
java - 操作Excel檔案
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version></depend
java程式碼實現檔案或資料夾的壓縮和解壓
這裡寫了個工具類,可以實現檔案的壓縮和解壓功能。 package com.cntaiping.tpi.common.utils; import java.io.BufferedInputStream; import java.io.File; import java.io
vue+element -UI前端Excel 檔案匯入資料
在這裡我用到了一個外掛,需要在在main.js中全域性引入: import { export_excel_to_json, export_json_to_excel } from '@/api/operExcel' 下載地址:https://download.csdn.net/download
Java 操作xml檔案的dom4J庫使用
XML簡介 什麼是xml? XML 指可擴充套件標記語言(EXtensible Markup Language) XML 是一種標記語言,很類似 HTML XML 的設計宗旨是傳輸資料,而非顯示資料 XML 標籤沒有被預定義。您需要自行定義標籤。 XM
【Java】對檔案或資料夾進行重新命名
在Java中,對檔案或資料夾進行重新命名是很簡單的,因為Java的File類已經封裝好rename
java操作csv檔案(讀、寫)
今天在做專案的時候,發現使用POI無法解析以csv檔案結尾的檔案,雖然csv檔案能用Excel開啟,但是csv檔案沒有像Excel一樣有規定的電子表格形式,故使用POI無法解析csv檔案,在網上找了一下,發現java有提供javacsv檔案來幫忙解析cs