-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_DOUBLEまたはを使用できますFLOAT()詳細をご覧ください

そうは言っても、どちらも整数を保持することになっているものの正しい選択ではありません。また、それらは主キーの選択としても不適切です。固執しNUMBERます。

VB オーバーフロー エラーが発生する場合は、精度を下げることができます。のようなものNUMBER(12,0)(または、ビジネス ルールの安全な上限となる任意の値)。

移入された列のデータ型は変更できず、空の列のみを変更できることに注意してください。

于 2013-04-13T13:07:09.000 に答える