2012-03-19 1 views
4

디버깅을 시도하는 크고 복잡한 SQL보기가 있습니다. 보기에 표시되지 않는 레코드가 있으며 레코드를 표시하는 절 또는 조인을 결정해야합니다. 지금은 매우 수동으로이 작업을 수행하고 있습니다. 한 번에 하나씩 절을 제거하고 쿼리를 실행하여 필요한 행이 표시되는지 확인합니다.자동 순열을 가능하게하기 위해 SQL 쿼리를 DOM과 유사한 트리로 구문 분석 하시겠습니까?

2 주에 한 번 정도 다이빙을 끝내기 때문에 프로그래밍 방식으로이 작업을 수행 할 수 있다면 좋을 것 같습니다.


이 객체의 트리로 ( sqlalchemy.sql.expression 예를 들면 사람들을) SQL 쿼리를 구문 분석하는 방법은 그래서 나무를 permuate하고 그 결과를 실행할 수 있어요 경우

아무도 알고 있나요?

+0

음 ... 같은 최종 목표를 달성 할 수있는 인기있는 RDBM에서 실행 계획을 단계적으로 수행 할 수있는 방법이 있는지 궁금합니다. 만약 당신이 제안한 것을하지 않는 것이 없다면, 아마도 그것을 쓸 수 있습니다. 조인을 Embedded SQL로 변환하고 쿼리를 분할하여 각 내장 된 블록을 개별적으로 실행하고 검사 할 수 있습니다. –

+0

@Mario에게 감사드립니다. Toad를 데이터베이스 UI로 사용하고 옵션에서 이와 같은 것을 보지 못했습니다. 그러나 SQL을 분리하고 자신을 생각하는 아이디어는 좋은 (그러나 복잡한) 아이디어처럼 들립니다! –

답변

3

아직 SQLAlchemy에서 정의 된 뷰가 없다면 도움이 될 것 같지 않습니다.

sqlparse과 같은 방법으로 시도해 볼 수 있습니다. SQLA를 사용하여 출력을 순차 화하고 원시 sql로 순열을 실행할 수 있습니다.

+0

감사합니다, SQLAlchemy에 정의 된 뷰가없고 SQLAlchemy가 나를 위해이 작업을 수행 할 수 있기를 기대했지만 sqlparse가 최상의 솔루션 일 수 있습니다. –