2017-09-04 52 views
0

當我嘗試使用update語句更新包含字符數據類型的列時。它說0行更新並不會引發任何錯誤。由於列數很多,我嘗試使用where子句使用特定的列...它在哪裏更新行。在oracle中使用更新查詢時更新了0行

問題是當所有列用於更改值時,它將返回0行更新。我必須在vba代碼/工具中自動化它,以便它可以使用所有行進行更新。我確定了哪些列沒有被更新,但沒有錯誤返回。

它只是說:

0 rows updated

但那個特定列(數據類型...小數)有什麼問題。

請幫忙。我搜索了整個互聯網,但沒有結果。

+2

顯示查詢和一些示例數據 – dbajtr

+0

這是所識別的列我不讓更新。更新keyfigures2設置「Company Name」='chem5',其中「Gross Profit Margin」= 0.198871996076508; (P.S:表中沒有主鍵) –

+0

請顯示你曾經有過這個'0更新'的SQL查詢... –

回答

0

如果您嘗試更新數據庫中的特定值並且僅更新該值,則可能會出現舍入問題。這意味着您看到的值不是存儲的確切值。

因此,您可以嘗試使用特定範圍進行更新。

  1. 首先選擇要更新的內容:

    select rowid from table_1 
    where val_x between <x>-<upsilon> and <x>+<upsilon>; 
    
  2. 更新如果你只有一個值;

    update table_1 set val_x = <new_val> 
    where val_x between <x>-0.001 and <x>+0.001 
    ; 
    

(否則,如果超過1個值,減少<upsilon>0.0001等)

希望它能幫助