스크립트 개발 / SQL 구성 DFF.SQL
DFF.SQL(...)은(는) 매개변수가 포함된 SQL을 구성하는 데 사용되며, 문자열 연결을 통해 사용자 입력을 삽입하지 않도록 합니다. 대부분의 SQL 커넥터에는 이미 이 기능이 내장되어 있어 conn.query(sql, sql_params=...) 또는 conn.non_query(...)를 직접 호출할 수 있습니다.
디버깅을 위해 SQL을 명시적으로 포맷해야 하거나, 호출 측에서 최종 SQL 문자열을 받아야 하는 경우에만 DFF.SQL(...)을(를) 별도로 호출하면 됩니다.
매개변수와 자리표시자
| 매개변수 | 타입 | 필수 / 기본값 | 설명 |
|---|---|---|---|
sql |
str | 필수 | 매개변수 자리표시자를 포함하는 SQL 문 |
sql_params |
list | None |
자리표시자 순서대로 제공되는 SQL 매개변수 |
| 자리표시자 | 의미 | 예시 결과 |
|---|---|---|
? |
값 매개변수, 이스케이프 처리 후 따옴표가 붙음 | 'user-001' |
?? |
식별자 또는 SQL 조각, 따옴표가 붙지 않음 | users |
| 예시 | |
|---|---|
1 2 3 4 5 | |
??은(는) 신뢰할 수 없는 입력을 보호하지 않습니다
사용자 입력은 반드시 ?에 넣어야 합니다. 테이블명, 필드명 등의 식별자는 허용 목록 또는 신뢰할 수 있는 구성에서 비롯된 경우에만 ??에 넣을 수 있으며, f-string이나 문자열 연결을 통해 SQL 값을 삽입해서는 안 됩니다.
매개변수 전개
배열 매개변수는 자동으로 여러 값으로 전개되며, 2차원 배열은 여러 행의 값으로 전개됩니다:
| 배열 전개 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
딕셔너리 매개변수는 여러 할당 표현식으로 전개됩니다:
| 딕셔너리 전개 | |
|---|---|
1 2 3 4 5 | |
동적 쓰기 또는 삭제 SQL을 실행하기 전에 대상 테이블과 필터 조건을 다시 확인해야 합니다.