Oracle 모드에서 H2를 사용하고 있습니다. 테이블 foo
에 bar
열을 추가하고 값으로 채 웠습니다. 이제 돌아가서 열에 NOT NULL
제약 조건을 부여하고 싶습니다.H2는 Oracle 구문을 사용하여 NOT NULL 제약 조건 테이블 열을 추가하기 위해 지원됩니다.
ALTER TABLE foo ALTER COLUMN bar NOT NULL;
H2는 Unknown data type: "NOT" …
, 저에게 말한다 : ALTER TABLE
에 대한 몇 가지 old Oracle docs 보면
, 내가 처음이 시도.
그래서 나는 ALTER TABLE
구문에 대한 몇 가지 more recent Oracle documentation에서보고,이 시도 :
ALTER TABLE foo MODIFY (bar VARCHAR2(255) NOT NULL);
(내가 유형을 변경하지 않아도됩니다 만, 생산 다이어그램이 필요한 것을 나타내는 것 같다. 내가 잘못 여기서 뭐하는 거지 H2는 저에게 말한다
, Syntax error in SQL statement "ALTER TABLE FOO MODIFY ([*]BAR VARCHAR2(255) NOT NULL) " …
?이 H2의 오라클 모드의 버그인가, 또는 (가능성이) 나는 구문 중요한 뭔가를 놓친 거지? (실제로 시도하지 않은 그것 Orac에 르,하지만 나는 오라클 모드에서 H2에서 지원할 수있는 기본적인 것을 찾았습니다.)
사람들은 질문을 읽어보십시오!오라클 구문을 원합니다. 예, H2에 대해 테스트하고 있습니다. H2가 Oracle 구문을 지원하는지 여부를 알고 싶습니다. H2 구문을 말해 주면 H2가 Oracle 구문을 지원하는지 어떻게 알 수 있습니까 ??
H2를 사용하는 경우 오라클 설명서가 아닌 [H2 매뉴얼] (http://h2database.com/html/grammar.html)을 읽어야합니다. "오라클 모드"는 매우 기본적인 오라클 구문 부분 만 시뮬레이트합니다. 그것은 H2가 오라클처럼 행동하지 못하게합니다. –
우리는 오라클처럼 행동하기를 원합니다. 오라클 모드에서 오라클과 같지 않은 경우 티켓을 제출하고 H2를 수정하는 데 리소스를 사용하여 오라클 모드에서 Oracle처럼 작동합니다. 질문은 : 위에서 제공된 SQL 명령 중 어느 것이 유효한 Oracle 구문인지? SQL을 망쳤거나 H2가이 구문을 지원하지 않기 때문에 작동하지 않습니까? (예, H2 매뉴얼을 읽을 것이지만 정확한 오라클 신택스가 있는지 명확히하고 싶습니다.) –
이것은 이해가되지 않습니다. 왜 오라클을 사용하지 않습니까? –