반응형
Oracle에서 오른쪽 괄호가 누락되었다고 생각하는 이유는 무엇입니까?
Oracle 10i에서 다음 명령을 실행합니다.
ALTER TABLE jnrvwchnglst ADD
( jnrvwchnglst_userid NUMBER(10) NOT NULL DEFAULT 1 )
네.jnrvwchnglst
기존 테이블이며 아니요jnrvwchnglst_userid
기존 열이 아닙니다.
Oracle 오류 메시지는 다음과 같습니다.
ORA-00907: missing right parenthesis
이 쿼리의 문제점과 Oracle에서 괄호가 누락되었다고 생각하는 이유는 무엇입니까?
ALTER TABLE jnrvwchnglst ADD
( jnrvwchnglst_userid NUMBER(10) DEFAULT 1 NOT NULL )
"(NOT) NULL"은 구문적으로 "ALTER"의 마지막 문이어야 합니다. 따라서 Oracle이 이를 보았을 때 다음 문자("DEFAULT" stmt)가 예상 종료 권한이 아닙니다.")가 오류를 발생시켰습니다.
이전에도 열을 추가할 수 없고 동일한 문에서 기본값/제약 조건을 설정할 수 없는 문제가 발생한 적이 있습니다.오른쪽 괄호 없음'은 빨간색-헤링입니다.Oracle은 괄호와 관련이 없는 경우에 해당 오류를 사용하는 것을 좋아합니다(내 생각에는 구문 분석 로직이 00907까지 연결되는 것 같습니다).
해라
ALTER TABLE jnrvwchnglst ADD ( nrvwchnglst_userid NUMBER(10) );
ALTER TABLE jnrvwchnglst ALTER ( nrvwchnglst_userid SET DEFAULT 1 );
UPDATE jnrvwchnglst SET nrvwchnglst_userid = 1 WHERE nrvwchnglst_userid IS NULL;
ALTER TABLE jnrvwchnglst ALTER ( nrvwchnglst_userid SET NOT NULL );
언급URL : https://stackoverflow.com/questions/706503/why-does-oracle-think-im-missing-a-right-parenthesis
반응형
'programing' 카테고리의 다른 글
C에서 '0'을 빼면 문자가 나타내는 숫자가 되는 이유는 무엇입니까? (0) | 2023.08.04 |
---|---|
jQuery에서 입력 파일이 비어 있는지 확인하는 방법 (0) | 2023.08.04 |
클래스 상수가 있는지 확인합니다. (0) | 2023.08.04 |
이것은 무엇을 의미합니까?:*(int32 *) 0 = 0; (0) | 2023.08.04 |
mysql의 그룹당 행 번호 (0) | 2023.08.04 |