MDB数据倒入Oracle一种快捷的数据转移方法(mdb倒入oracle)
MDB数据倒入Oracle:一种快捷的数据转移方法
在企业数据管理中,数据转移是一个非常常见的操作。在实际应用中,经常需要将Access数据库(mdb)中的数据导入Oracle中。但是这种数据转移其实是一项有些复杂的任务。本文将会介绍一种基本的快捷的数据转移方法。
在介绍具体操作之前,需要讲解一些实现原理。将Access数据库导入到Oracle中,首先需要将mdb数据库中的数据读出,然后将它们转换成Oracle能够接受的格式,最后再将数据导入到Oracle数据库中。
1. 安装ODBC驱动
Oracle数据库提供了ODBC驱动程序,可以通过它连接到Access数据库。在进行数据转移之前,需要先安装ODBC驱动。以下是ODBC驱动安装的基本步骤:
(1)下载最新版的Oracle ODBC驱动程序;
(2)打开“控制面板”的“管理工具”,并选择“ODBC数据源(32位)”;
(3)选择“系统 DSN”并单击“添加”;
(4)选择“Oracle in OraClient12Home1”(这个名字可能会根据您使用的Oracle版本而有所变化);
(5)填写一些常规信息,如数据源名称、数据源描述以及TNS Service Name;
(6)完成安装。
2. mdb数据库导出
可通过代码方式将Access数据库中的数据导出到本地文件中,如下:
Public Sub mdbToExcel()
Dim StrSht As String
StrSht = “Sheet1”
Dim ExcelApp As Object
Set ExcelApp = CreateObject(“Excel.Application”)
Dim ExcelBook As Object
Set ExcelBook = ExcelApp.Workbooks.Add
Dim ExcelSheet As Object
Set ExcelSheet = ExcelBook.Worksheets(StrSht)
Dim AccessConn As Object
Set AccessConn = CreateObject(“ADODB.Connection”)
AccessConn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\My Documents\Access.mdb”
Dim Rst As Object
Set Rst = CreateObject(“ADODB.Recordset”)
Rst.Open “Select * from Table1”, AccessConn, 2, 2
Dim i As Integer
Dim j As Integer
i = 1
Do While Not Rst.EOF
j = 1
Do While j
ExcelSheet.Cells(i, j).Value = Rst(j – 1)
j = j + 1
Loop
i = i + 1
Rst.MoveNext
Loop
ExcelBook.SaveAs “C:\My Documents\Sheet1.xls”
ExcelBook.Close False
ExcelApp.Quit
Set ExcelSheet = Nothing
Set ExcelBook = Nothing
Set ExcelApp = Nothing
MsgBox “Done!”
End Sub
重新打开Excel文件后,可以看到我们想要导入Oracle数据库的数据已经成功地导出。
3. Excel文件转换
在上一步Excel文件导出中,数据已经被成功导出到了Excel文件中。但是这里需要注意一点,直接在Oracle中导入Excel文件是无法识别的。我们需要先将Excel文件转换成Oracle能够识别的格式。现在我们将使用PL/SQL Developer。
在PL/SQL Developer中,选择“Tools”—“Data Import(数据导入)”:
(1)选择Excel文件,单击“Next”。
(2)选择对应的数据类型,单击“Next”。
(3)进行数据字段对应,单击“Next”。
(4)数据导入可提供的选项,单击“Finish”完成操作。
为了方便管理和使用,应将数据导入成表,如下:
CREATE TABLE table1
(
Field1 varchar2(50),
Field2 varchar2(50),
Field3 varchar2(50),
Field4 varchar2(50),
Field5 varchar2(50)
);
4. Oracle数据库导入
最后一步是将数据导入Oracle数据库中。使用如下代码进行导入。
CREATE OR REPLACE PROCEDURE import_from_excel
AS
vFileLocation VARCHAR2(4000) := ‘C:\My Documents\Sheet1.xls’;
vExcelPrefix VARCHAR2(4000) := ‘Sheet1$’;
vColumnNameList VARCHAR2(4000) := ‘FIELD1,FIELD2,FIELD3,FIELD4,FIELD5’;
BEGIN
EXECUTE IMMEDIATE ‘truncate table Table1’;
INSERT
INTO Table1
(
Field1,
Field2,
Field3,
Field4,
Field5
)
SELECT
*
FROM
OPENROWSET
(
‘Microsoft.Jet.OLEDB.4.0’,
‘Excel 8.0;Database=’ || vFileLocation || ‘;HDR=YES;IMEX=0’,
‘SELECT ‘
|| vColumnNameList ||
‘ FROM [‘
|| vExcelPrefix ||
‘]’
);
END;
/
在导入数据之前,务必要清空一下表中原有的数据。以上的代码可以实现将Excel文件中的数据导入到Oracle表中。
总结
本文介绍了一种基于ODBC驱动的,使用代码的快速数据转移方法。通过以上的步骤,您可以成功地将mdb数据库中的数据导入到Oracle数据库当中。随着企业数据规模的不断扩大,数据库转移将越来越重要,而以上方法可以提高数据转移率,为企业管理带来极大的便利。