2009-07-07 13 views
2

私はALTER(Oracle 10上で)新しいCLOB列を追加してテーブルを作成しようとしていますが、失敗しています。 ORA-01735エラーが表示されます。問題は何か特に私の質問に間違いがあるかどうかを知ることができないので、私はここで尋ねると思います。Oracle表にLOBを追加すると何が問題になりますか?

はとにかく私のクエリは次のとおりです。

ALTER TABLE "MYSCHEMA"."MYTABLE" ADD "ACOLUMN" CLOB(2048); 

そして、次のエラーを取得:

SQL Error: ORA-01735: invalid ALTER TABLE option 
01735. 00000 - "invalid ALTER TABLE option" 

任意のアイデア?

ありがとうございました。

答えて

5

あなたはCLOB用サイズ(サイズを指定したい場合はVARCHARを使用)を指定することはできません:あなたは、その列の2048の以上の文字をたくない場合は行いません、

SQL> alter table t add ("ACOLUMN" CLOB(2048)); 

alter table t add ("ACOLUMN" CLOB(2048)) 

ORA-00907: missing right parenthesis 

SQL> alter table t add ("ACOLUMN" CLOB); 

Table altered 
+0

ええ、私はADD( "ACOLUMN" CLOB(2049))構文を試した後、右括弧の欠落エラーが発生しました。私はVARCHARを代わりに使用すると思います。 –

1
alter table t add a_column clob; 
alter table t add a_column_with_max_size varchar2(1234); --max 4000 
+0

Varchar2の4kの限界について私に思い出させてくれてありがとう!それをほとんど忘れてしまった。 –

1

をCLOBを使用し、VARCHAR2(2048)を使用します。 VARCHAR2は4000文字まで有効です。必要以上にCLOBを使用する場合にのみ使用してください。

+0

私は精神的に私の頭の中で問題を議論しています... CLOBまたはVARCHAR2が必要ですか?VARCHAR2は十分に見えますが、ある日はすべてが変わると変わる可能性があります。 CLOB ... mmm –

+0

カラムの目的は何ですか?手紙や詳細な指示の内容のように、編集できない任意の量のテキストを保持するのであれば、CLOBに行ってください。ユーザーがレコードに関するいくつかの注釈を記録するだけの場所で、常に4000文字以下に編集することが合理的に予想される場合は、VARCHAR2を使用してください。 –

関連する問題