개발·데이터 도구

SQL 문법 검사기

SQL을 실행하기 전에 선택한 DB 문법으로 읽히는지 확인하세요.

문법을 통과해도 테이블·권한·실행 결과까지 확인된 것은 아닙니다.

실행 전에 SQL 문법 확인SQL은 서버로 전송하거나 저장하지 않고 현재 브라우저에서 검사합니다.
DB 연결 없음

Oracle SQL과 PL/SQL 블록·프로시저·함수·패키지의 구문을 검사합니다. 실제 DB 컴파일은 수행하지 않습니다.

230 / 100,000
Ctrl / ⌘ + Enter
SQL✓

DB 종류를 선택하고 문법 검사를 눌러 주세요.

첫 번째 오류 위치를 확인한 뒤 수정하고 다시 검사할 수 있습니다.

Oracle·PL/SQL, Tibero의 Oracle 호환 구문, MySQL·PostgreSQL·SQLite·SQL Server를 지원합니다. DB 버전별 확장 문법과 실행 성공을 보장하지 않습니다. :변수명은 값 없이 검사할 수 있으며 HQML·FreeMarker 태그는 실제 SQL로 펼친 뒤 입력하세요. SQL은 실행되지 않습니다.

DB 종류를 맞추고 첫 오류부터 고치기

  1. 쓰는 DB를 먼저 선택

    Oracle·Tibero·MySQL·PostgreSQL·SQLite·SQL Server 중에서 고르세요. 같은 SQL도 선택한 문법에 따라 결과가 달라질 수 있습니다.

  2. SQL을 넣고 검사

    실제 SQL을 붙여넣고 문법 검사를 누르세요. 여러 문장은 세미콜론으로 구분하고, 템플릿 태그는 SQL로 펼친 뒤 입력합니다.

  3. 멈춘 위치부터 확인

    오류의 줄·열로 이동해 바로 앞의 쉼표·괄호·연산자를 살펴보세요. 수정 후 다시 검사하고, 통과한 SQL의 실행 여부는 DB에서 따로 확인합니다.

WHERE 뒤 값이 빠진 쿼리

입력
SELECT id, name FROM users WHERE status = ;
결과 확인
오류 위치를 보고 = 뒤에 비교할 값이 있는지 확인합니다.

표시 위치는 파서가 멈춘 곳입니다. 지원하지 않는 문법도 오류로 표시될 수 있어 DB 종류를 함께 확인하세요.

작업하다 궁금할 때

입력한 SQL이 서버에 저장되나요?

SQL은 현재 브라우저 안에서만 분석하며 서버로 전송하거나 저장하지 않습니다. DB에 연결하지 않으므로 SELECT뿐 아니라 INSERT·UPDATE·DELETE도 실행되지 않습니다.

문법 검사를 통과하면 실제 DB에서도 실행되나요?

실행 성공을 보장하지 않습니다. 문법 분석기의 지원 범위에서만 검사하며 테이블·컬럼 존재 여부, 함수 인수, 권한, DB 버전별 차이와 데이터 상태는 실제 DB에서 확인해야 합니다.

Oracle이나 Tibero SQL도 검사할 수 있나요?

Oracle SQL·PL/SQL 구문과 Tibero의 Oracle 호환 SQL·tbPSM 구문을 검사할 수 있습니다. NVL·DECODE·ROWNUM·CONNECT BY·외부 조인 (+)와 :변수명 등을 지원합니다. Tibero 전용 문법, DB 버전별 차이와 실제 컴파일은 별도로 확인해야 합니다.

프로시저·함수·패키지와 HQML도 검사하나요?

PL/SQL 블록과 프로시저·함수·패키지의 구문을 분석합니다. 변수 선언의 유효성, 자료형, 반환값과 DB 객체는 검증하지 않습니다. HQML·FreeMarker의 <#if> 등 템플릿은 먼저 실행할 SQL로 펼친 뒤 검사하세요.

정상 쿼리인데 오류로 표시되는 이유는 무엇인가요?

DB 종류가 다르거나 문법 분석기가 지원하지 않는 확장 구문일 수 있습니다. 오류 위치는 실제 잘못된 부분보다 뒤에 표시될 수도 있습니다. 선택한 DB와 앞뒤 구문을 확인하고 큰 스크립트는 문장별로 나누어 검사하세요.