如何在oracle中使用密钥更改数据类型?

时间:2013-04-13 11:16:05

标签: oracle vb6

我的前端代码是:

PRIVATE SUB FORM_LOAD()
.Open SQL, CON, 1, 2
If .RecordCount > 0 Then
Combo4.Clear
.MoveFirst
Do While Not .EOF
Combo4.AddItem .Fields("ASSET_NAME").Value
Combo4.ItemData(Combo4.NewIndex) = .Fields("AID").Value
.MoveNext
Loop
Else
Combo4.Clear
End If
.Close
END SUB

我的Oracle表如下所示:

SQL> DESC ASSET
 Name                                      Null?    Type
 -------------------------------- -------- -------------
 AID                                       NOT NULL NUMBER(38)
 ASSET_NAME                                         VARCHAR2(50)
 LOC_ID                                             NUMBER(38)
 UNIT                                               VARCHAR2(25)
 SUP_ID                                             NUMBER(38)
 BITT                                               VARCHAR2(5)

SQL>

AID是ASSET表的主键,数据类型为INT。但是在前端我得到'6' OVERFLOW的运行时错误。所以我决定更改AID列的数据类型。不幸的是我收到了这个错误:

SQL> ALTER TABLE ASSET
  2  MODIFY AID DOUBLE;
MODIFY AID DOUBLE
            *
 ERROR at line 2:
     ORA-00905: missing keyword
SQL>    

1 个答案:

答案 0 :(得分:0)

DOUBLE不是Oracle数据类型,您可以使用BINARY_DOUBLEFLOAT()Find out more

说了什么,对于应该持有整数的东西来说,两者都不是正确的选择。对于主键,它们也是一个糟糕的选择。坚持NUMBER

如果您遇到VB溢出错误,可以降低精度。像NUMBER(12,0)这样的东西(或任何值可以为您的业务规则制定安全上限)。

请注意,我们无法更改已填充列的数据类型,只能更改空列。