Oracle を使用しており、長いデータ型を含むテーブルがあります。その後、これがレガシーであり、LOB を使用する必要があることを発見しました。また、おそらくNUMBER(10,0)を使用できると思います。
列を long データ型から NUMBER データ型に変換したいと考えています。
これまでの私のSQLは次のとおりです。
ALTER TABLE BUDGET ADD AMT2 NUMBER(10,0);
UPDATE BUDGET SET AMT2 = AMT;
ALTER TABLE BUDGET DROP COLUMN AMT;
ALTER TABLE BUDGET RENAME COLUMN AMT2 TO AMT;
AMT 列は LONG 新しい AMT2 列は NUMBER(10, 0) の新しい列です
問題は、ロングを数値に割り当てるとエラーが発生することです。これは更新行 (line2) にあります。これは、データの切り捨てが原因であると推測されます。
エラーは
SQL Error: ORA-00932: inconsistent datatypes: expected NUMBER got LONG
列内のすべてのデータは 10000 未満であるため、オラクルにデータの切り捨てを強制的に無視させたいと考えています (存在する必要があるとは思わないため)。長いデータを数値データ列に割り当てるにはどうすればよいですか?
ありがとう