2014-07-08 30 views
0

我有一個包含103列和100,000多條記錄的表。有人告訴我,Oracle Data Base在很少的列(四列)和很少的記錄(約20,000個記錄)中有不好的數據,並被告知要修改數據。此外,我被給了一個查詢,我應該修改數據(壞數據)。在查詢的幫助下,我將所有不良數據導出到excel中並使用宏進行修改。用excel中的數據替換部分oracle數據庫

如何將Oracle數據庫中現有的不良數據替換爲我在excel(良好數據)中使用的數據。是否有可能使用SQL查詢修改數據庫某些部分的數據?我的意思是說,103列中有4列和100k記錄中的20k必須進行修改,而不影響Oracle數據庫中已有的良好數據。

我使用SQL開發人員和Oracle 11g

我的查詢檢索壞數據

select e.id_number 
, e.gender_code 
, e.pref_mail_name 
, e.prefix 
,e.first_name 
,e.last_name 
,e.spouse_name 
,e.spouse_id_number 
,e.pref_jnt_mail_name1 
,e.pref_jnt_mail_name2                  
from advance.entity e                   
where e.person_or_org = 'P'                 
and ascii(e.spouse_name) <> 32                
or ascii(e.spouse_id_number) <> 32" 

注:另外我不改變任何主鍵或二級的關鍵數據。壞數據在其他列中。

+0

我想你正在尋找'UPDATE'語句。 [Documentation here](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10008.htm#SQLRF01708)。通過Excel公式的一些工作,可以在Excel電子表格中生成所需的「UPDATE」語句,然後將這些語句複製到SQL Developer(或任何您擁有的工具)並執行它們。祝你好運。 –

回答

0

您可以通過將所有更正的數據(現在位於Excel文件中)導入臨時表開始。有關更多詳細信息,請參閱Load Excel data sheet to Oracle database

它應該是一個簡單的任務,寫一個或多個UPDATEstatements。如果您不熟悉Oracle語法,請登錄Tech on the Net has some nice examples

此外,在進行任何更改之前,請不要忘記將原始表備份到臨時表。這樣,如果你搞砸了數據修復,你可以重新開始。