我正在使用 Oracle 并且有一个包含 long 数据类型的表。从那以后我发现这是遗留问题,我应该使用 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)
问题是当将 long 分配给一个数字时,我得到一个错误。这是在更新行 (line2) 我认为这是因为数据截断。
错误是
SQL Error: ORA-00932: inconsistent datatypes: expected NUMBER got LONG
该列中的所有数据都小于 10000,所以我想强制 oracle 忽略任何数据截断(因为我不相信应该有任何数据截断)。如何将长数据分配给数字数据列?
谢谢