2014-03-19 3 views
0

나는이 도메인 클래스가 있습니다.열에 너무 큰 문자열을 저장하는 방법은 무엇입니까?

ORA-12899 :

class Jobs { 

String query 

static constraints = { 
    query(maxSize: 63760) 
    query type: "text" 
} 

static mapping = { 
//And I tried all this: 
// sqlType: "char", length:63760 
// query sqlType: DbSupport.bigStringType 
// table 'HYPJobs' 
//query sqlType: "text" 
//query(nullable: true, maxSize: 64000) 
// query type:'materialized_clob',sqlType: "clob" 
} 

} 

을하지만 난 그것을 실행하면 나는 아직도이 오류 가지고. "JOBS"열 "MyProject를"너무 큰 값을 "QUERY를" (실제 : 1395, 최대 : 255)

사람 ???

+0

가 정적 매핑 = {: '텍스트'쿼리 유형을} 시도 않은 일을해야합니까? –

+0

예! 내 절망 속에서 가능한 모든 조합을 했어! –

+0

DataSource.groovy의 dbCreate 설정은 무엇입니까? –

답변

1

class Jobs { 

    String query 

    static constraints = { 
    query maxSize: 63760 // remove this unless you really want to limit the size to 63760 
    } 

    static mapping = { 
    query type: 'text' 
    } 
} 
1

오류 메시지에서 실제 테이블 열은 varchar2(255)이고 1395 자의 값을 삽입하려고합니다.

더 긴 값을 원하면 DB의 열 길이를 늘려야합니다. varchar2 열로는 4k를 넘을 수 없습니다 (어쨌든 12c까지). 실제로 64k까지의 값이 필요한 경우에는 열을 clob으로 변경해야합니다. Groovy에서 선언을 변경하는 것만으로 (또는 어디에서든지 varchar(63760)이 어디에 있는지 모르겠습니다!) 데이터베이스 자체의 열 크기에는 영향을 미치지 않습니다.