2017-01-22 21 views
1

私は、このエラーメッセージにSHORTINTEGER無効なデータ・タイプのSQL Developer

エラーレポートに直面しています

CREATE TABLE CARTECREDIT 
(
    forfaitID INTEGER, 
    nomForfait VARCHAR(13) NOT NULL , 
    cout NUMBER(10,4), 
    locationMax SHORTINTEGER NOT NULL, 
    dureeMax SHORTINTEGER NOT NULL, 
    PRIMARY KEY (forfaitID) 
); 

SQL Developerで、このテーブルを作成しようとしているとして -
ORA-00902:無効なデータ型
00902. 00000 - "無効なデータ型"
*原因:
*アクション:

彼らが青

で強調表示していない。しかしドキュメントOracle Documentationに従ってSHORTINTEGERが実数型である

私が間違って何をしましたように、SQL DeveloperはSHORTINTEGERを認識していないようですか?

+0

OracleでINTEGER、SMALLINTなどを使用することについての簡単なコメントです。データ型INTEGERの場合、Oracleは整数算術のハードウェア実装を使用すると考えています。 **それは**ではありません。宣言するデータ型に関係なく、Oracleはすべての算術演算にライブラリ関数を使用します。したがって、INTEGERを使用すると、NUMBERへのキャストが必要になり、INTEGERへのキャストが必要になるため、実際には効率的ではありません。この配置は、最適なものとはかなり離れています(オラクルは何を考えていましたか)。あなたのデータを整数にするには 'NUMBER(...、0)'を使い、制約をチェックしてください。 – mathguy

答えて

1

SHORTINTEGERはサポートされていません。 OLAP Datawerehouseで使用されているデータ型のドキュメントをリンクしています。 Oracleの10のための

データ型を使用したい場合はOracleのネイティブは、あなたがすることができますNUMBER(必要に応じて精度とスケールを指定する)とVARCHAR2の代わりにVARCHAR

を使用する必要があり、データ型ここ

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i54873

指定されていますただし、INTEGER、INT、SMALLINT、VARCHARなどのANSIデータ型も使用します。しかし、私はあなたがOracleのネイティブデータ型を使用することをお勧めします。

+0

ありがとうございました........私はオラクルがとても大きな世界だと思います.....すべてのオラクルの構造を経験していない人にとっては残念です。 – napi15

+0

あなたは歓迎です。申し訳ありませんが、あなたが言ったように、ドキュメントは迷路のようです。 – Massimo

0

精度と位取りを指定することなく、頻繁に数値を使用します。そして、はるかに快適に使用することができます。しかしマッシモの答えは、バリーゼです:)

関連する問題