

# 실행 파라미터 사용
<a name="querying-with-prepared-statements-querying-using-execution-parameters"></a>

DML 쿼리에서 물음표 자리표시자를 사용하여 준비된 문을 먼저 만들지 않고도 파라미터화된 쿼리를 만들 수 있습니다. 이러한 쿼리를 실행하려면 Athena 콘솔을 사용하거나 AWS CLI 또는 AWS SDK를 사용하고 `execution-parameters` 인수에 변수를 선언합니다.

**Topics**
+ [Athena 콘솔 사용](querying-with-prepared-statements-running-queries-with-execution-parameters-in-the-athena-console.md)
+ [AWS CLI 사용](querying-with-prepared-statements-running-queries-with-execution-parameters-using-the-aws-cli.md)

# Athena 콘솔에서 실행 파라미터로 쿼리 실행
<a name="querying-with-prepared-statements-running-queries-with-execution-parameters-in-the-athena-console"></a>

Athena 콘솔에서 실행 파라미터(물음표)가 있는 파라미터화된 쿼리를 실행하면, 쿼리에 물음표가 나타나는 순서대로 값을 입력하라는 메시지가 표시됩니다.

**실행 파라미터가 있는 쿼리를 실행하려면**

1. 다음 예제와 같이 Athena 편집기에서 물음표 자리표시자와 함께 쿼리를 입력합니다.

   ```
   SELECT * FROM "my_database"."my_table"
   WHERE year = ? and month= ? and day= ?
   ```

1. **실행**을 선택합니다.

1. **파라미터 입력(Enter parameters)** 대화 상자에서 쿼리에 포함된 각 물음표의 순서대로 값을 입력합니다.  
![\[쿼리 파라미터 값을 순서대로 입력합니다\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/querying-with-prepared-statements-1.png)

1. 파라미터 입력이 끝나면 **실행(Run)**을 선택합니다. 입력한 파라미터 값에 대한 쿼리 결과가 편집기에 표시됩니다.

이때 다음 중 한 가지를 수행할 수 있습니다.
+ 동일한 쿼리에 대해 다른 파라미터 값을 입력한 다음 **다시 실행(Run again)**을 선택합니다.
+ 입력한 모든 값을 한 번에 지우려면 **지우기(Clear)**를 선택합니다.
+ 쿼리를 직접 편집하려면(예: 물음표 추가 또는 제거) **파라미터 입력(Enter parameters)** 대화 상자를 먼저 닫습니다.
+ 나중에 사용할 수 있도록 파라미터화된 쿼리를 저장하려면 **저장(Save)** 또는 **다른 이름으로 저장(Save as)**을 선택한 다음 쿼리에 이름을 지정합니다. 저장된 쿼리 사용에 관한 자세한 내용은 [저장된 쿼리 사용](saved-queries.md) 단원을 참조하세요.

편의상, 쿼리 편집기에서 동일한 탭을 사용하는 한 **파라미터 입력(Enter parameters)** 대화 상자에는 쿼리에 대해 이전에 입력한 값이 저장됩니다.

# AWS CLI를 사용하여 실행 파라미터로 쿼리 실행
<a name="querying-with-prepared-statements-running-queries-with-execution-parameters-using-the-aws-cli"></a>

AWS CLI를 사용하여 실행 파라미터로 쿼리를 실행하려면 `start-query-execution` 명령을 사용하고 `query-string` 인수에 파라미터화된 쿼리를 제공합니다. 그런 다음 `execution-parameters` 인수에 실행 파라미터 값을 제공합니다. 다음 예는 이 기법을 보여 줍니다.

```
aws athena start-query-execution 
--query-string "SELECT * FROM table WHERE x = ? AND y = ?"
--query-execution-context "Database"="default" 
--result-configuration "OutputLocation"="s3://amzn-s3-demo-bucket;/..."
--execution-parameters "1" "2"
```