[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

2016년 2월 23일 화요일

[DB]ODBC Access Driver 사용시에 Inner Join에 대한 "쿼리식의 연산자가 없는 구문 오류입니다." 오류..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

Access(.mdb)를 사용하기 위해서 ODBC로 등록해서 JDBC로 연결할 때 평소하던 것 처럼 쿼리문을 짰는데 오류가 떨어졌다. 쿼리상으로는 문제가 없는데 Access Driver가 해당 쿼리에 대해서 지원을 하지 않는 것으로 보였다.

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 'b.categoryid=a.categoryid INNER JOIN role AS c ON b.roleid=c.roleid' 쿼리식의 연산자가 없는 구문 오류입니다.

아래와 같은 쿼리이다.

SELECT a.title, b.sid, b.points, b.pattern, b.base, c.rolename
FROM itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?

INNER JOIN이 1개만 있을때는 오류가 없는데 INNER JOIN을 2번하면 오류가 나오는데 ODBC 드라이버가 그런건지 몰라도 FROM절에서 INNER JOIN을 제대로 인식하지 못하는 것 같다. 그래서 다음과 같이 괄호로 묶어 주어야 한다.

SELECT a.title, b.sid, b.points, b.pattern, b.base, c.rolename
FROM (itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid)
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?

만약 INNER JOIN이 하나 더 붙으면 괄호를 또 감싸주어야 한다.

하튼 왜 디비를 MDB를 쓴다고 결정해놔서 이 고생을... ㅡ..ㅡ

[Tool]Subversion의 Attempted to lock an already-locked dir 에러 발생시..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

이클립스에서 서브버전(Subversion)연동해서 개발하다가 다음과 같은 에러가 발생했다.

사용자 삽입 이미지

org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir이라는 SVNClientException이 발생했다. 그냥 잘 쓰고 있었는데 특정파일이 lock이 걸렸다고 커밋이 안되는 것이었다.  이건 업데이트등의 어떤 액션을 하다가 실패를 해서(정상적인 종료가 안되어서) lock이 걸려버린 것으로 추정한다.

사용자 삽입 이미지

서브버전(이클립스에서는 서브클립스)의 [Team]  - [Cleanup] 메뉴를 실행하고 다면 다시 커밋을 할 수 있다. Cleanup액션은 비정상적으로 SVN의 액션이 종료되었을 때 이것을 정리해 주는 명령어이다. 이렇게 하면 Revert한것처럼 수정된 파일도 커밋하기전의 원래 파일로 돌아온다.