0

test_table私は以下のようなテーブルを持っています

test_id varchar2(10)
new_test_id number

test_id はvarchar格納された数値ですが、今は test_id の現在の値の負の値を new_test_id に格納したいと考えています。私が試したステートメントは次のとおりです。

update test_table a set a.new_test_id = TO_NUMBER(-a.test_id);

テストクエリを次のように実行すると、無効な番号エラーがスローされます

select TO_NUMBER(-test_id) from test_table

適切にフォーマットされた数値の結果が表示されます。

ステートメントでto_number文字列を数値に変換できないのはなぜですか? そして、このシナリオの代替手段は何ですか?updateselect

4

4 に答える 4

1

test_id 列に予期せずアルファベットのレコードがいくつかあったため、機能していないことがわかりました。To_number は、更新中のレコードのみで失敗し、数字を持つ他のレコードでは問題ありませんでした。

于 2013-09-17T13:24:40.070 に答える