2017-01-17 9 views
0

Oracleテーブルを作成しようとしていますが、無効なデータ型エラーが表示されていますが、 )。Oracle:テーブル作成時に無効なデータ型エラーが発生しました

CREATE TABLE SCRIPT_LINE 
    (
     ID INTEGER PRIMARY KEY NOT NULL, 
     EPISODE_ID INTEGER NOT NULL, 
     LINE_NUMBER INTEGER, 
     RAW_TEXT VARCHAR(4000), 
     TIMESTAMP NUMERIC, 
     SPEAKING_LINE BOOLEAN, 
     CHARACTER_ID INTEGER NOT NULL, 
     LOCATION_ID INTEGER NOT NULL, 
     CHARACTER VARCHAR(500), 
     LOCATION VARCHAR(500), 
     SPOKEN_WORD VARCHAR(4000), 
     WORD_COUNT INTEGER 
    ); 

どのようなエラーが発生する可能性がありますか?前もって感謝します。

+0

また、[VARCHARとVARCHAR2の違い]を参照してください(http://stackoverflow.com/questions/1171196/what-is-the-difference-between- varchar-and-varchar2)。 – MT0

+0

@ MT0:違いはありませんVARCHARはVARCHAR2の同義語です –

+0

@a_horse_with_no_name現在の実装の違いはありませんが、VARCHARはOracleが現在サポートしていないANSI標準の 'VARCHAR'のプレースホルダです(' VARCHAR2 ')しかし、それ以降のバージョンではサポートすることを選択するかもしれません。空文字列と、同じものと別個のものを表す未知数(NULL)との間に意味的な違いがあります。したがって、現在サポートされていないにもかかわらず、OPはその違いを理解し、ANSI規格が実装されている場合に最も適切なタイプが使用されるように、将来のアプリケーションの妥当性を検討する必要があります。 – MT0

答えて

2

Oracleは、(1) Y/N Oracleは、ブールをサポートしていませんので、最善の選択肢がcharだろうBOOLEANデータ型

+0

ありがとう。それでも私の開発者用コンソールでは強調表示されていたので、それが存在すると信じられました。 –

+0

'BOOLEAN'はPL/SQLで有効な型ですが、Oracle RDBMSエンジンでは有効な型ではありません。だから、それはあなたがどこにいるかによって決まります。 :-)個人的に、Yes/Noのようなものが必要なときは、VARCHAR2(1)NOT NULL CHECK(whatever_field IN( 'Y'、 'N')) 'を使用します。私の目的のために十分に機能します。 –

0

を持っていません。代わりにnumber(1)を使用してください。0/1

関連する問題