-1

我的前端代码是:

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 是数据类型为 INT 的 ASSET 表的主键。但是在前端我得到一个运行时错误 '6' OVERFLOW。所以我决定改变 AID 列的数据类型。不幸的是,我收到了这个错误:

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

1 回答 1

0

DOUBLE不是 Oracle 数据类型,您可以使用BINARY_DOUBLEor FLOAT()了解更多

话虽如此,对于应该保存整数的东西来说,这也不是正确的选择。它们也是主键的错误选择。坚持NUMBER

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

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

于 2013-04-13T13:07:09.000 回答