所以,我有這個基於java的數據轉換/屏蔽工具,我想在Oracle 10g上進行測試。使用Oracle 10g的好處在於,您可以獲得大量樣本模式,其中有些記錄有50萬條記錄。模式是:SH,OE,HR,IX等。因此,我安裝了10g,發現安裝腳本在ORACLE_HOME/demo/scripts下。Oracle示例數據問題
我自定義了這些腳本,以便在批處理模式下運行。這解決了我需求的一半 - 爲測試我的數據轉換軟件創建源數據。 需求的第二部分是我創建了不同名稱下的相同模式(TR_HR,TR_OE等等),沒有任何數據。這些模式將代表我的目標模式。因此,簡而言之,我的軟件將從模式中的表中獲取數據,並將其載入到不同模式中的同一個表中。
現在,我在創建我的目標架構並清空它時遇到了兩個問題。
- 我希望在批處理作業中使用。但是你得到的oracle腳本,示例模式名稱是不可配置的。所以,我嘗試創建一個腳本,用TR_OE替換OE,用TR_HR替換HR等等。然而,這種方法是令人惱火的,因爲樣本模式在創建方式上有點複雜; Oracle創建同義詞,視圖,物化視圖,數據類型和很多奇怪的東西。
- 我希望目標模式(TR_HR,TR_OE,...)爲空。但是一些模式有循環引用,這不允許我刪除數據。唯一的解決方法似乎是刪除某些外鍵,刪除數據,然後添加約束。
是否有任何簡單的方法來處理所有這些,沒有這麼大驚小怪?我需要一個複雜的數據集用於我的測試(複雜的如帶有觸發器的表,複雜的層次結構......例如,子表最多有5個子級的子表,引用IOT表和IOT表的父表這是指一個非物聯網表等)。從數據集的角度來看,示例模式非常完美。我看到的唯一挑戰就是自動化加載源模式的整個過程,然後創建目標模式並清空它們。感謝您的幫助和建議。
UPDATE
,你需要手動安裝Oracle示例模式運行主腳本mkplug.sql。下面是從dmp文件加載模式向上行:
host imp "'sys/&&password_sys AS SYSDBA'" transport_tablespace=y file=&imp_file log=&imp_logfile datafiles='&datafile' tablespaces=EXAMPLE tts_owners=hr,oe,pm,ix,sh
嗯,我想修改該行本(修補上mkplug.sql和所有其他SQL文件路徑相關的問題後):
host imp "'sys/&&password_sys AS SYSDBA'" rows=n transport_tablespace=y file=&imp_file log=&imp_logfile datafiles='&datafile' tablespaces=EXAMPLE tts_owners=hr,oe,pm,ix,sh
而且......它沒有不是幫助。儘管rows = n屬性:(
你只是想創建模式對象的腳本的替代版本,但不填充數據?你不能只刪除所有的INSERT語句嗎? – 2010-03-29 07:28:39
@Jeffrey nope。示例腳本sql從.dmp文件加載。 (數據文件)。示例腳本中沒有插入語句。 – Jay 2010-03-29 07:44:48