2017-09-04 24 views
0

更新文を使用して文字データ型で列を更新しようとしています。 0行が更新され、エラーは発生しません。列の数が多いので、where句を使って特定の列を使用して試してみました。ここで、行が更新されます。oracleで更新クエリを使用中に0行が更新される

問題は、すべての列を使用して値を変更すると、0行が更新されて戻されるという問題です。私はそれをすべての行を使用して更新できるように、VBAコード/ツールで自動化する必要があります。値が更新されていないが、エラーが返されていない列を特定しました。

それだけで言う:

0 rows updated

しかし、その特定の列(datatype ... decimal)で何が問題になっていますか。

助けてください。私は全体のインターネットを検索しましたが、結果はありません。

+2

をホープは、これが識別される列で – dbajtr

+0

クエリといくつかのサンプルデータを示し、それは私にアップデートをさせない。 Update keyfigures2 set "Company Name" = 'chem5'ここで、「Gross Profit Margin」= 0.198871996076508; (P.S:テーブルにプライマリキーがありません) –

+0

この '0 updates'を使用していた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つのを超える値であれば、0.0001<upsilon>を減らす、など)

はそれが

関連する問題