1. 程式人生 > >java程式碼實現oracle sql語句轉mysql sql語句

java程式碼實現oracle sql語句轉mysql sql語句

package com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.regex.Pattern;


/**
 * @author Administrator
 * oracle sql語句轉mysql sql語句
 */
public class OracleToMysqlInsert {
	public void doChange(String filePath) {
		try {
			File file = new File(filePath);
			FileReader rd = new FileReader(file);
//			BufferedReader br = new BufferedReader(rd);
			InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
			BufferedReader br = new BufferedReader(isr);

			File outFile = new File(
					filePath.substring(0,
							filePath.lastIndexOf(File.separator) + 1)
							+ "I"
							+ filePath.substring(filePath
									.lastIndexOf(File.separator) + 1));
//			FileWriter b = new FileWriter(outFile, false);
			
			FileOutputStream writerStream = new FileOutputStream(outFile, false);
			BufferedWriter b = new BufferedWriter(new OutputStreamWriter(writerStream, "UTF-8"));
			
			String rowStr;
			int i = 0;
			while (!(rowStr = br.readLine()).equals("##")) {
				while (rowStr.indexOf("to_date('") > 0) {
					String rowTemp = rowStr.substring(rowStr
							.indexOf("to_date('"));
					String aimStr = rowTemp.substring(
							rowTemp.indexOf("('") + 1, rowTemp.indexOf(","));
					String dateTemp = null;
					if (aimStr.indexOf(" ") > 0) {
						dateTemp = aimStr.substring(aimStr.indexOf("'") + 1,
								aimStr.indexOf(" "));
					} else {
						dateTemp = aimStr.substring(aimStr.indexOf("'") + 1,
								aimStr.lastIndexOf("'"));
					}
					String[] strTemp = dateTemp.split("-");
					String dateStr = strTemp[2] + "-" + strTemp[1] + "-"
							+ strTemp[0];
					aimStr = aimStr.replaceFirst(dateTemp, dateStr);
					String resStr = rowTemp.substring(0,
							rowTemp.indexOf(")") + 1);
					rowStr = rowStr.replace(resStr.subSequence(0, resStr
							.length()), aimStr.subSequence(0, aimStr.length()));

				}
				b.write(rowStr);
				System.out.println(rowStr);
				b.write("\r\n");
			}
			b.flush();
			// rename to the original File

			file.delete();
			b.close();
			rd.close();
		} catch (FileNotFoundException e) {
//			System.out.println("�ļ�δ�ҵ���");
			e.printStackTrace();
		} catch (IOException e) {
//			System.out.println("IO�쳣���޷�д�ļ���");
			e.printStackTrace();
		}
	}

	public static void main(String arg[]) {
		OracleToMysqlInsert changtext = new OracleToMysqlInsert();
		changtext.doChange("C:\\Users\\Administrator\\Desktop\\sys_i18n_message.sql");
		System.out.println("OK");
//		changtext.doChange("D:\\import\\" + "supplier.sql");
//		changtext.doChange("D:\\import\\" + "supplierDetail.sql");
//		changtext.doChange("D:\\importData\\" + "codetype.sql");
//		changtext.doChange("D:\\importData\\" + "codedict.sql");
//		changtext.doChange("D:\\importData\\" + "port.sql");
//		changtext.doChange("D:\\importData\\" + "country.sql");
//		changtext.doChange("C:\\" + "PODETAIL.sql");
	}

}

相關推薦

java程式碼實現oracle sql語句mysql sql語句

package com; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import j

java程式碼實現MySQL資料庫表千萬條資料去重

  準備工作: 1.資料庫表:datatest5 2.欄位: id 主鍵自增,val 重複值欄位併為val建立索引 3.設定innodb緩衝池大小 show variables like "%_buffer%"; SET GLOBAL innod

MysqlJava程式碼實現資料庫定時備份與還原詳解

一、目的 使用java程式碼實現定時執行Mysql備份與還原。 二、思路 先寫好一個定時器,每隔多少時間執行一次備份 備份方法為,通過java向命令列寫入命令執行 首先在cmd中模擬備份,測試成功後 使用java程式碼實現資料備份功能

mysql資料庫的連線以及增刪改查Java程式碼實現(Statement版)

資料庫: create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32)); insert into t1(name,password) va

mysql資料庫的連線以及增刪改查Java程式碼實現(PreparedStatement版)

資料庫: create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32)); insert into t1(name,password) v

java程式碼實現JDBC連線MySql以及引用驅動程式包

JDBC連結MySql   JDBC連結MySql的話題已經老掉牙了,這次我只想通過使用簡潔的程式碼實現,採用封裝的思想,將連結MySql的程式碼封裝在類的靜態方法中,供一次性呼叫返回java.sq

java程式碼實現wordPDF

本次實現是用openoffice的外掛實現的 jar包: commons-io-1.4.jar jodconverter-2.2.1.jar juh.jar jurt.jar ridl-3.2.1.jar slf4j-api-1.7.7.jar unoil.jar 以上ja

java程式碼實現將無表頭.txt文字檔案化為weka能識別.arff檔案

首先,我們要有一個.txt檔案,每一行中的元素個數是相同的(因為每一行中的每一個元素就代表了一種型別的屬性值),文尾已奉上,讀者自行下載。有的就不用下載了, 然後,,, 程式碼如下,具體的就不細講了

CCF認證201803-2 碰撞的小球 java程式碼實現

問題描述   數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。   當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。   當兩個小

億級別記錄的mongodb分頁查詢java程式碼實現

1.準備環境   1.1 mongodb下載   1.2 mongodb啟動      C:\mongodb\bin\mongod --dbpath D:\mongodb\data   1.3 視覺化mongo工具Robo 3T下載 2.準備資料    <d

Java程式碼實現負載均衡五種演算法

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/u012904383/article/details/78358354 前言:        

演算法學習——中國大學MOOC-陳越、何欽銘-資料結構-起步能力自測題——java程式碼實現

自測-1 列印沙漏 (20 point(s)) 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大

常用mysql語句elasticsearch查詢語句

多個查詢條件 bool(must、should、must_not) select * from index_person where name = 'jeck' or sex = 'male' order by age,sex { "query":{ "bool"

十大經典排序演算法詳細總結(含JAVA程式碼實現)

文章目錄 十大經典排序演算法詳細總結(含JAVA程式碼實現) 0、排序演算法說明 1、氣泡排序(Bubble Sort) 2、選擇排序(Selection Sort) 3、插入排序(Insertion Sort) 4、希爾

十大排序演算法的實現 十大經典排序演算法最強總結(含JAVA程式碼實現

十大經典排序演算法最強總結(含JAVA程式碼實現)   最近幾天在研究排序演算法,看了很多部落格,發現網上有的文章中對排序演算法解釋的並不是很透徹,而且有很多程式碼都是錯誤的,例如有的文章中在“桶排序”演算法中對每個桶進行排序直接使用了Collection.sort

java 程式碼實現各資料的正則校驗

最近公司的專案,關於excel匯入匯出,對資料要進行校驗,所以就對資料的正則校驗就用的比較多,自己也是一點點去查,現在專案完成了,就把所有用到的都做一個小結,或許以後還可以用到! package org.asyware.insurance.util; import java.util.reg

java程式碼實現根據JSON檔案進行批量檔案重新命名或者改目錄結構

使用JAVA程式碼根據JSON檔案進行批量修改檔名以及路徑 某些網站視訊加密分割,首先去下載格式轉換工具,再用chrome F12開啟控制檯,找到json檔案進行檔案還原 json資料: {“message”:“hello”,“result”:[],“status”:200

資料結構4--佇列(java程式碼實現佇列的鏈式儲存)

1.什麼是佇列?      佇列也叫隊,時允許在一段進行擦汗如另一端進行刪除的運算受限的線性表。區別佇列和棧:棧時先進後出,佇列時先進先出。                 &nbs

資料結構2--線性表(java程式碼實現線性表的鏈式儲存)

1.鏈式儲存       2.分析       每個節點為一個物件,該物件包含資料域和指標域        整條單鏈表為一個物件,他和節點物件進行組合。  3.

資料結構1--線性表(java程式碼實現線性表的順序儲存)

1.資料結構的概念      資料:資訊載體,計算機處理的物件的總稱      資料元素:也稱結點,組成資料的基本單位      資料項:資料項是資料的最小單位     &n