2012-08-14 4 views
1

이전과 마찬가지로 Java-Oracle11g-JDBC (OJDBC) 코드를 작성하십시오. Java 코드가 아래 문에 executeUpdate()을 시도하면 오류가 발생합니다. 그러나 Oracle 11g는 아무런 문제없이 (GUI를 통해) 실행합니다. (즉, printStackTrace에의 일부)간단한 create user statement가 실패합니까?

명령문 -

CREATE USER Person identified by 2012; 

오류 -

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character 
+0

';' 결말에? 2012 암호입니까? 그렇다면 ''로 이것을 이스케이프 처리하십시오. – markus

답변

3

오라클은 마지막에 세미콜론을 좋아하지 않는다. 오라클 GUI에서 작동하더라도 OJDBC 쿼리에는 세미콜론이 필요하지 않습니다.

+0

매우 이상합니다. Oracle 11g의 GUI는 세미콜론을 좋아합니다. 일부 java-sql 문은 세미를 성공적으로 사용한 다음 위의 경우에 왜 불만을 나타 냅니까? –

+0

@sweetdreams 예, JDBC-> MySQL과 같은 것은 세미콜론으로도 좋습니다. 그러나 오라클의 JDBC는 다중 질의를 허용하지 않으며 불법 문자로 간주한다. 그 이유가 무엇인지에 대한 설명이 없습니다. –

+3

@sweetdreams 세미콜론을 사용하는 이유는 컴파일러 나 엔진이 이것이 문장의 끝임을 알 수 있도록 라인을 종료하는 것입니다. JDBC는 문자열 ("") 안에 세미콜론이 필요하지 않습니다. 문안 인사 – user75ponic

관련 문제