2009-07-07 3 views
2

나는 (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

(당신이 크기를 지정하려면 사용 VARCHAR) 당신은 CLOB에 대한 크기를 지정할 수 없습니다 :

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 
당신이 열에서 2048 개 이상의 문자를 싶지 않을 경우
+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를 사용해야하는 경우에만 CLOB를 사용하십시오.

+0

나는 내 머리 속에서이 문제를 정신적으로 논쟁하고있다. CLOB 또는 VARCHAR2가 필요하다 ... VARCHAR2는 충분히 좋아 보인다. 그러나 언젠가는 모든 것이 바뀌고 아마도 언젠가는 바뀔 것이다. CLOB ... mmm –

+0

컬럼의 목적은 무엇입니까? 편지의 내용이나 자세한 지침과 같이 편집 할 수없는 임의의 양의 텍스트를 보관하려면 CLOB로 이동하십시오. 사용자가 레코드에 대한 몇 가지 노트를 레코드하는 것이고 4000 글자 이상으로 항상 편집 할 것으로 예상 할 수 있다면 VARCHAR2를 사용하십시오. –

관련 문제