亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

將Access數據庫移植到Oracle

2024-09-07 19:05:09
字體:
來源:轉載
供稿:網友
    從現有系統向 Oracle 數據庫的移植過程可能令人畏懼,尤其是現有數據庫與 Oracle 數據庫結構具有很少的相似性或者沒有相似性的時。 在本技術說明中,我將對比從 Microsoft access 移植到 Oracle 的兩種技術:使用 Microsoft Access 中的實用程序以及某些 DOS 專用批處理文件的“原始”方法,以及使用 Oracle Migration Workbench (OMW) 工具的“改進”方法。 手動方法
   第一種技術包括兩個階段。第一階段是將 Access 數據庫轉換為 Oracle 數據庫。只有當 Access 作為前端(如表單和報表) — 并且 Oracle 數據庫繼續作為后端的時候才使用第二階段。后者提供了一種在即席查詢基礎上將 Access 數據庫備份到 Oracle 的策略。還可以建立一個服務,使這一過程定期自動地運行。
為了實現從 Access 到 Oracle 數據庫的手動移植,您可以遵循以下這些步驟: 在 Oracle 中定義具有相同數據類型的表。避免在 Oracle 中使用 CLOB,因為這種數據類型會使系統速度降低;使用 varchar2 作為替代類型。此外,禁止在列名中使用空格,禁止使用百分號。單詞 mode 和 comment 是 Oracle 中的要害字,因此假如您的 Access 數據庫有包含這些單詞的列名,則應該在 Oracle 中將它們改為其他有意義的名稱。謹慎處理日期和時間之間、具有小數的數字與沒有小數的數字之間以及 char 與 varchar2 的數據類型轉換。在 Oracle 中沒有 Boolean 類型 — 使用 char(1) 作為替代類型。
確保 Access 表定義了主鍵(Oracle 的所有表均需它們)。此外,Oracle 區分大小寫,而 Access 不區分大小寫。所有列和表的名稱均使用大寫字母。另外,在 Oracle 中名稱應少于 30 個字符(在 Access 中為少于 64 個)。
前往“控制面板”->“治理工具”->“數據源 (ODBC)”。
在“系統 DSN”選項卡中,單擊“添加”。
選擇 Oracle ODBC 驅動程序,然后單擊“完成。
在“ODBC 驅動程序設置”框中,為 DNS 鍵入數據庫名稱而非主機名稱。
鍵入說明。
對于“數據源服務名”,再次鍵入數據庫的名稱并指定 UserID。
根據需要設置其他選項,并相應地更改預取數量。注重,應用程序提取行所用的 Oracle 數據庫必須是 8.0.3 或更高版本。
單擊“確定”兩次。注重,根據您的操作系統版本不同,您可能可以選擇在驅動程序配置中直接使用 TNS 名稱服務。
在繼續操作之前,測試該連接。
轉到 Access。
選擇表。
右鍵單擊“鏈接表”。
在對話框中,轉到“文件類型”,選擇 ODBC Databases ()。
轉到“機器數據源”選項卡,找到所需 DSN。選中它,單擊“確定”。
假如尚未填寫服務名、用戶名和口令,則鍵入這些項。對于服務名,應該使用該 DSN。
假如尚未填寫服務名、用戶名和口令,則鍵入這些項。對于服務名,應該使用 DSN。
單擊“確定”,出現一系列的表和模式。選擇表。單擊“確定”。
對于沒有主鍵的表,提示您選擇唯一的記錄標識符。對于這些表,選擇“不顯示字段”,然后單擊“確定”?,F在您將看到 Access 中所有的鏈接表(在表的旁邊有一個球形標志)。
轉到“查詢”選項卡。
選擇“新建”->“查找不匹配項查詢向導”。
選擇 Access 中的表。單擊“下一步”。
選擇從 Oracle 中鏈接的表(現在位于 Access 中)。
假如有主鍵,則對其進行匹配。
假如沒有主鍵,只需單擊“下一步。
假如有多個主鍵,則只需匹配其中一個。
單擊“下一步”,選擇所有字段,選擇“下一步”,單擊“修改設計”,然后單擊“完成”。
轉到“查詢”->“追加查詢”。
選擇表名作為所討論的鏈接表,假如尚未選擇,則選擇當前數據庫,然后單擊“確定”。
在“追加到”部分中,假如尚未選擇相應列,則選擇這些列。
轉到匹配主鍵列中,刪除出現在“追加到”部分中的任何內容。
保存該查詢。
假如有一個主鍵,則此步驟即可完成。
假如有多個主鍵,則轉到 SQL 視圖中,將查詢更改為包含兩個主鍵 — 例如,假如表有兩個主鍵(如 Catalog# 和 Step#),并且您在匹配查詢向導中使用了 Catalog#,則將:
INSERT INTO PMSANGAL_TBLSPECSTEPS ( MOD, [CATALOG#], [STEP#], LAYER, NOM_OHMS,
NOM_OHMS, MAX_OHMS, LEFT_PERCENT, RIGHT_PERCENT )
SELECT SpecSteps.Mode, SpecSteps.[Catalog #], SpecSteps.[Step #], SpecSteps.Layer,
SpecSteps.[Min Ohms], SpecSteps.[Nom Ohms], SpecSteps.[Max Ohms], SpecSteps.[Left %],
SpecSteps.[Right %]
FROM SpecSteps LEFT JOIN PMSANGAL_TBLSPECSTEPS ON SpecSteps.[Catalog #] =
PMSANGAL_TBLSPECSTEPS.[CATALOG#]
WHERE (((PMSANGAL_TBLSPECSTEPS.[CATALOG#]) Is Null));

修改為:
INSERT INTO PMSANGAL_TBLSPECSTEPS ( MOD, [CATALOG#], [STEP#], LAYER, MIN_OHMS,
NOM_OHMS, MAX_OHMS, LEFT_PERCENT, RIGHT_PERCENT )
SELECT tblSpecSteps.Mode, tblSpecSteps.[Catalog #], tblSpecSteps.[Step #], tblSpecSteps.Layer,
tblSpecSteps.[Min Ohms], tblSpecSteps.[Nom Ohms], tblSpecSteps.[Max Ohms],
    tblSpecSteps.[Left %], tblSpecSteps.[Right %]
FROM tblSpecSteps LEFT JOIN PMSANGAL_TBLSPECSTEPS ON ((tblSpecSteps.[Catalog #] =
PMSANGAL_TBLSPECSTEPS.[CATALOG#]) AND  (tblSpecSteps.[Step #] = PMSANGAL_TBLSPECSTEPS.[STEP#]))
WHERE (((PMSANGAL_TBLSPECSTEPS.[CATALOG#]) Is Null) AND ((PMSANGAL_TBLSPECSTEPS.[STEP#]) Is Null));因為所有主鍵列均非空,所以您需要在 WHERE 條件中使用 AND。
對所有表重復以上步驟。
假如表中沒有主鍵,則使用 AND 而非 OR 在所有列上進行一次聯接并在所有列上進行一次 null 檢查。
轉到“宏”。
在“操作”中選擇“OpenQuery”,并選擇追加的查詢之一?!耙晥D”將是“數據表”,而“數據模式”將是“編輯”。
保存該宏。
選擇該宏,并轉到“工具”-“宏”->“將宏轉換為 Visual Basic 代碼”。
假如尚未選中“給生成的函數加入錯誤處理”和“包含宏注釋”,則選中此二者,并單擊“轉換”,將該宏轉換為具有函數名的模塊。
保存該模塊。
再次轉到該模塊,對其進行更改,使用以下的模板:
'------------------------------------------------------------
' CalMacro
'
'------------------------------------------------------------
Function CalMacro()
On Error GoTo CalMacro_Err
   
Dim strConnect As String
Dim strMyFile As String
Dim dbs As Database
Dim rst As RecordsetstrConnect = "ODBC;DATABASE=PUNEET;DSN=PUNEET;" & "UID=PMSANGAL;" & "PWD=********;"'PUNEET is the DSN or name of the database...Set dbs = OpenDatabase("", False, True, strConnect)
Set rst = dbs.OpenRecordset("PMSANGAL.tblCal", dbOpenDynaset)
   
DoCmd.SetWarnings False
DoCmd.OpenQuery "tblCal Without Matching PMSANGAL_TBLCAL", acNormal, acEdit
   
dbs.CloseCalMacro_Exit:
Exit FunctionCalMacro_Err:
MsgBox Error$
Resume CalMacro_ExitEnd Function對于所有的追加查詢,重復以上過程。
在創建這些模塊之后,您可以刪除那些用于創建這些模塊的宏。
再創建一個新的宏。
在“操作”中選擇“RunCode”,并從剛才為其所創建的模塊中選擇或鍵入函數名。為此,雙擊“函數”->“數據庫”,選擇正確的模塊和函數。
對于同一個宏中的所有追加查詢都執行此過程。
最后,在“操作”中選擇“Quit”,并選擇“退出”選項。
現在執行簡單的一步,但卻是最重要的一步:利用以下信息制作一個批處理文件:
"C:/PRogram Files/Microsoft Office/Office/Msaccess.exe" "database path" /x  Macroname運行該批處理文件。
   您可以看到此方法需要大量手動工作。需要執行很多步驟,并且該過程很容量出錯。即使您只做錯一步,也很難進行反向跟蹤并調試什么地方出錯了。此外,假如您需要重新鏈接表,則會感到困難重重且很費時,這取決于要轉換的表的數量。  自動方法 第二種移植方法與第一種方法相比具有明顯的優勢。 以數據類型轉換為例。OMW 提供一個向導來指導您完成此過程,從而簡化了移植過程。該工具推薦并提供了易于更改的默認值。下表列出了一些推薦值: 訪問字段 默認值 推薦值
文本 Varchar2(999) Varchar2(999)
數字 — 長整型 Number(11,0) Number(11,0)
數字 — 字節型 Number(3,0) Number(3,0)
數字 — 整型 Number(5,0) Number(5,0)
日期/時間 Date Date
布爾型 Number(1,0) Number(1,) 或 char(1)

即使對于非 Access 數據庫,OMW 也在集成環境中提供了對觸發器、過程和數據庫模式等轉換的完整支持??梢赞D換的 Microsoft Access 版本是 2.0、95、97 和 2000。 下表總結了 Oracle 與 Access 之間的轉換: 特性 支持的轉換?
表 是
視圖 否(只支持查詢)
索引 是
組/角色 N/A
用戶 否
約束 是(有效性規則)
權限 否
用戶定義類型 N/A
存儲過程 N/A
觸發器 N/A
嵌入式 SQL N/A
其他特性 關系、鏈接表、應用程序代碼重用  下圖演示了 OMW 在體系結構級別上的運作方式:
圖 1:OMW 體系結構 將Access數據庫移植到OracleOMW 使用向導和腳本,如下:
捕捉向導捕捉源數據庫。
移植向導將源模型移植到 Oracle 模型。
腳本創建一系列描述數據庫結構的文件,還將數據從源數據庫復制到目標數據庫。 在使用向導和腳本之后,您可以使用 OMW 用戶接口來自定義 Oracle 數據模型。
為了移植不同的第三方數據庫,OMW 使用了專用于它所能移植的各種數據庫的插件,包括 SQL Server、DB2 和 Informix。必須至少與 OMW 一起安裝一個插件。 Oracle 在 OTN 上存放了關于如何使用 OMW 進行移植的大量文檔,并且提供免費下載。但是下面的概述表明該過程相當簡單: 啟動捕捉向導。
單擊 Next。
輸入連接目標 Oracle 數據庫所需的信息。
單擊 Next。
出現“Migrate Tablespaces, Users, and User Tables”頁面。
查看“Migrate Tablespaces, Users, and User Tables”頁面上的信息,并單擊 Next;出現“Migrate Table Data”頁面。
指定在本移植向導會話期間是否傳輸數據。
單擊 Next;出現“Select Schema Objects to Migrate”頁面。
選擇要移植的模式對象,并單擊 Next;出現“Summary”頁面。
查看摘要信息。
單擊 Finish,啟動移植過程。
出現一個進度屏幕,顯示關于移植進度的信息。復雜數據庫的移植過程可能需要很長時間。
在具有 Microsoft Access 插件時,出現“Modify Microsoft Access Database”屏幕。您還可以更改 Microsoft Access 數據庫文件,以便 Microsoft Access 表單和報表使用 ODBC 連接來使用目標數據庫:
輸入 ODBC 連接的用戶名。ODBC 連接用戶名是被移植數據庫的名稱。
輸入用戶的口令。
輸入目標數據庫的 ODBC 連接名稱。
出現一個進度屏幕,顯示關于移植進度的信息。復雜數據庫的移植過程可能需要很長時間。
結論 這里描述的步驟只是對過程的概述,過程可能更短或更長,這取決于所要轉換的數據庫。強烈建議使用 OMW 進行移植。對于此主題,您可以利用 Oracle 在線教育以及大量的論壇。有關將 Access 應用程序移植到 Html DB 的信息,請閱讀此技術白皮書。  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品第1页| 亚洲精品国产精品久久清纯直播| 国产精品丝袜视频| 成人福利视频在线观看| 国内揄拍国内精品少妇国语| 国产成人高潮免费观看精品| 亚洲精品成人久久| 国产一区二区美女视频| 91国产视频在线播放| 精品视频—区二区三区免费| 国产精品一区二区3区| 免费91在线视频| 日韩电影中文字幕在线观看| 久久精品国产亚洲精品2020| 亚洲毛片一区二区| 91日本在线观看| 欧美在线视频免费观看| 日韩成人性视频| 在线播放国产一区二区三区| 成人网在线视频| 在线视频日本亚洲性| 久久亚洲精品国产亚洲老地址| 欧美电影在线免费观看网站| 国内精品400部情侣激情| 欧美一区二区三区免费视| 丁香五六月婷婷久久激情| 国产欧美日韩中文| 91亚洲精品一区二区| 中文字幕日本精品| 91综合免费在线| 久久精品国产亚洲精品2020| 日本精品视频网站| 中文字幕一区二区精品| 国产91免费观看| 欧美性极品xxxx做受| 97久久精品在线| 日韩精品在线免费播放| 日韩电影中文字幕一区| 91精品久久久久久久久久另类| 91av国产在线| 国产亚洲xxx| 欧美一区视频在线| 97人洗澡人人免费公开视频碰碰碰| 一区二区三区日韩在线| 成人激情视频在线| 亚洲午夜久久久久久久| 中文字幕日韩综合av| 亚洲在线观看视频| 国产成人高潮免费观看精品| 久久亚洲春色中文字幕| 日韩电视剧免费观看网站| 美女性感视频久久久| 亚洲天堂av综合网| 欧美日韩一区二区免费在线观看| 欧美性视频精品| 成人免费直播live| 亚洲成人黄色在线观看| 国产成人a亚洲精品| 日韩中文字幕av| 国产精品日日摸夜夜添夜夜av| 午夜精品久久久久久久白皮肤| 91在线观看免费高清完整版在线观看| 亚洲网站在线看| 欧美精品一区二区三区国产精品| 亚洲四色影视在线观看| 久久久女女女女999久久| 亚洲欧美日韩国产成人| 久久久久久亚洲精品不卡| 成人av资源在线播放| 日韩视频欧美视频| 欧美性20hd另类| 日日骚av一区| 欧美日韩中国免费专区在线看| 色综合视频网站| 日韩欧美在线播放| 日韩av中文字幕在线播放| 深夜福利日韩在线看| 国产精品爱久久久久久久| 九九九久久国产免费| 日韩av影视综合网| 97**国产露脸精品国产| 日本欧美一级片| 亚洲色图第三页| 日韩免费电影在线观看| 日韩久久精品成人| 亚洲乱码国产乱码精品精| 亚洲成人黄色在线| 在线丨暗呦小u女国产精品| 日韩在线视频免费观看| zzjj国产精品一区二区| 成人在线视频福利| 国产日产久久高清欧美一区| 欧美性xxxx极品hd满灌| 怡红院精品视频| www.日韩av.com| 97人洗澡人人免费公开视频碰碰碰| 欧美最猛性xxxxx免费| 狠狠久久亚洲欧美专区| 久久九九亚洲综合| 精品在线欧美视频| 欧美大肥婆大肥bbbbb| 欧美在线一级va免费观看| 久久人人爽人人爽人人片亚洲| 国产欧美精品一区二区三区-老狼| 欧美亚洲激情在线| 国产精品一区专区欧美日韩| 成人激情视频在线观看| 色偷偷av亚洲男人的天堂| 欧美亚洲成人网| 精品中文视频在线| 精品视频—区二区三区免费| 国产精品久久久久久亚洲调教| 日韩一级黄色av| 国产精品视频一区国模私拍| 国产精品极品在线| 欧美综合第一页| 精品久久久精品| 精品视频在线播放色网色视频| 国产精品美女在线观看| 久久97精品久久久久久久不卡| 一区二区三区四区在线观看视频| 最新91在线视频| 中文字幕亚洲一区二区三区| 久久久噜久噜久久综合| 成人免费在线视频网站| 日韩小视频网址| 日本精品久久久久影院| 欧美性受xxxx黑人猛交| 欧美做爰性生交视频| 欧美野外猛男的大粗鳮| 中文字幕久久精品| 一区二区福利视频| 亚洲人成五月天| 国内精品久久久久| 热re91久久精品国99热蜜臀| 亚洲免费福利视频| 国内精品400部情侣激情| 九九热精品视频| 日韩精品中文字幕久久臀| 国产成人av在线| 久久久日本电影| 成人午夜激情免费视频| 欧美日韩一区二区免费视频| 中文欧美日本在线资源| 亚洲天堂开心观看| 亚洲综合日韩中文字幕v在线| 深夜精品寂寞黄网站在线观看| 在线观看日韩视频| 日韩成人免费视频| 久久视频精品在线| 最近中文字幕mv在线一区二区三区四区| 高潮白浆女日韩av免费看| 欧美乱妇高清无乱码| 久久久久久久香蕉网| 欧美激情成人在线视频| 日韩视频精品在线| 欧美精品久久久久a| 国产精品稀缺呦系列在线| 亚洲精品99久久久久中文字幕| 久久69精品久久久久久久电影好| 日韩视频在线观看免费| 国产在线视频一区| 富二代精品短视频| 色婷婷**av毛片一区|