

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan pernyataan yang disiapkan
<a name="querying-with-prepared-statements-querying"></a>

Anda dapat menggunakan pernyataan yang disiapkan untuk eksekusi berulang dari kueri yang sama dengan parameter kueri yang berbeda. Sebuah pernyataan yang disiapkan berisi placeholder parameter yang nilainya disuplai pada waktu eksekusi.

**catatan**  
Jumlah maksimum pernyataan yang disiapkan dalam kelompok kerja adalah 1000.

**Topics**
+ [Sintaks SQL](querying-with-prepared-statements-sql-statements.md)
+ [Gunakan konsol Athena](querying-with-prepared-statements-executing-prepared-statements-without-the-using-clause-athena-console.md)
+ [Gunakan AWS CLI](querying-with-prepared-statements-cli-section.md)

# Sintaks SQL untuk pernyataan yang disiapkan
<a name="querying-with-prepared-statements-sql-statements"></a>

Anda dapat menggunakan pernyataan`PREPARE`, `EXECUTE` dan `DEALLOCATE PREPARE` SQL untuk menjalankan kueri parameter di editor kueri konsol Athena. 

 
+ Untuk menentukan parameter tempat Anda biasanya akan menggunakan nilai-nilai literal, gunakan tanda tanya dalam pernyataan `PREPARE`.
+ Untuk mengganti parameter dengan nilai-nilai saat Anda menjalankan kueri, gunakan klausa `USING` dalam pernyataan `EXECUTE`.
+ Untuk menghapus pernyataan yang disiapkan dari pernyataan yang disiapkan dalam kelompok kerja, gunakan `DEALLOCATE PREPARE` pernyataan tersebut.

Bagian berikut memberikan detail tambahan tentang masing-masing pernyataan ini.

**Topics**
+ [MEMPERSIAPKAN](querying-with-prepared-statements-prepare.md)
+ [EXECUTE](querying-with-prepared-statements-execute.md)
+ [DEALLOCATE PREPARE](querying-with-prepared-statements-deallocate-prepare.md)

# MEMPERSIAPKAN
<a name="querying-with-prepared-statements-prepare"></a>

Mempersiapkan pernyataan untuk dijalankan di lain waktu. Pernyataan yang disiapkan disimpan dalam grup kerja saat ini dengan nama yang Anda tentukan. Pernyataan tersebut dapat menyertakan parameter di tempat literal untuk diganti saat kueri dijalankan. Parameter yang akan diganti dengan nilai dilambangkan dengan tanda tanya.

## Sintaksis
<a name="querying-with-prepared-statements-prepare-syntax"></a>

```
PREPARE statement_name FROM statement
```

Tabel berikut mendeskripsikan parameter ini.


****  

| Parameter | Deskripsi | 
| --- | --- | 
| statement\$1name | Nama pernyataan yang harus dipersiapkan. Nama dalam buket harus unik. | 
| statement | Kueri SELECT, CTAS, atau INSERT INTO. | 

## SIAPKAN contoh
<a name="querying-with-prepared-statements-prepare-examples"></a>

Contoh berikut menunjukkan penggunaan `PREPARE`. Tanda tanya melambangkan nilai yang akan disuplai oleh pernyataan `EXECUTE` saat kueri dijalankan.

```
PREPARE my_select1 FROM
SELECT * FROM nation
```

```
PREPARE my_select2 FROM
SELECT * FROM "my_database"."my_table" WHERE year = ?
```

```
PREPARE my_select3 FROM
SELECT order FROM orders WHERE productid = ? and quantity < ?
```

```
PREPARE my_insert FROM
INSERT INTO cities_usa (city, state)
SELECT city, state
FROM cities_world
WHERE country = ?
```

```
PREPARE my_unload FROM
UNLOAD (SELECT * FROM table1 WHERE productid < ?)
TO 's3://amzn-s3-demo-bucket/'
WITH (format='PARQUET')
```

# EXECUTE
<a name="querying-with-prepared-statements-execute"></a>

Menjalankan pernyataan yang disiapkan. Nilai untuk parameter ditentukan dalam klausa `USING`.

## Sintaksis
<a name="querying-with-prepared-statements-execute-syntax"></a>

```
EXECUTE statement_name [USING value1 [ ,value2, ... ] ]
```

*statement\$1name*adalah nama pernyataan yang disiapkan. *value1*dan *value2* merupakan nilai yang akan ditentukan untuk parameter dalam pernyataan.

## CONTOH EKSEKUSI
<a name="querying-with-prepared-statements-execute-examples"></a>

Contoh berikut menjalankan pernyataan yang disiapkan `my_select1`, yang tidak berisi parameter.

```
EXECUTE my_select1
```

Contoh berikut menjalankan pernyataan yang disiapkan `my_select2`, yang berisi parameter tunggal.

```
EXECUTE my_select2 USING 2012
```

Contoh berikut menjalankan pernyataan yang disiapkan `my_select3`, yang memiliki dua parameter.

```
EXECUTE my_select3 USING 346078, 12
```

Contoh berikut menyuplai nilai string untuk parameter dalam pernyataan yang disiapkan `my_insert`.

```
EXECUTE my_insert USING 'usa'
```

Contoh berikut memasok nilai numerik untuk `productid` parameter dalam pernyataan `my_unload` disiapkan.

```
EXECUTE my_unload USING 12
```

# DEALLOCATE PREPARE
<a name="querying-with-prepared-statements-deallocate-prepare"></a>

Menghapus pernyataan yang disiapkan dengan nama tertentu dari daftar pernyataan yang disiapkan dalam grup kerja saat ini.

## Sintaksis
<a name="querying-with-prepared-statements-deallocate-prepare-syntax"></a>

```
DEALLOCATE PREPARE statement_name
```

*statement\$1name*adalah nama pernyataan yang disiapkan untuk dihapus.

## Contoh
<a name="querying-with-prepared-statements-deallocate-prepare-examples"></a>

Contoh berikut menghapus pernyataan yang disiapkan `my_select1` dari grup kerja saat ini.

```
DEALLOCATE PREPARE my_select1
```

# Jalankan pernyataan yang disiapkan interaktif di konsol Athena
<a name="querying-with-prepared-statements-executing-prepared-statements-without-the-using-clause-athena-console"></a>

Jika Anda menjalankan pernyataan siap yang ada dengan sintaks `EXECUTE` *prepared\$1statement* di editor kueri, Athena membuka kotak dialog **Enter** parameter sehingga Anda dapat memasukkan nilai yang biasanya masuk dalam `USING` klausa pernyataan. `EXECUTE ... USING`

**Untuk menjalankan pernyataan yang disiapkan menggunakan kotak dialog **Enter parameter****

1. Di editor kueri, alih-alih menggunakan sintaks `EXECUTE prepared_statement USING` *value1* `,` *value2*` ...`, gunakan sintaks `EXECUTE`*prepared\$1statement*.

1. Pilih **Jalankan**. Kotak dialog **Enter parameter** muncul.  
![\[Memasukkan nilai parameter untuk pernyataan yang disiapkan di konsol Athena.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/querying-with-prepared-statements-2.png)

1. Masukkan nilai secara berurutan di kotak dialog **Parameter eksekusi**. Karena teks asli kueri tidak terlihat, Anda harus mengingat arti dari setiap parameter posisi atau memiliki pernyataan yang disiapkan tersedia untuk referensi.

1. Pilih **Jalankan**.

# Gunakan AWS CLI untuk membuat, mengeksekusi, dan membuat daftar pernyataan yang disiapkan
<a name="querying-with-prepared-statements-cli-section"></a>

Anda dapat menggunakan AWS CLI untuk membuat, mengeksekusi, dan membuat daftar pernyataan yang disiapkan.

**Topics**
+ [Buat](querying-with-prepared-statements-creating-prepared-statements-using-the-aws-cli.md)
+ [Jalankan](querying-with-prepared-statements-cli-executing-prepared-statements.md)
+ [Daftar](querying-with-prepared-statements-listing.md)

# Buat pernyataan yang disiapkan menggunakan AWS CLI
<a name="querying-with-prepared-statements-creating-prepared-statements-using-the-aws-cli"></a>

Untuk menggunakan AWS CLI untuk membuat pernyataan siap, Anda dapat menggunakan salah satu `athena` perintah berikut:
+ Gunakan `create-prepared-statement` perintah dan berikan pernyataan kueri yang memiliki parameter eksekusi.
+ Gunakan `start-query-execution` perintah dan berikan string kueri yang menggunakan `PREPARE` sintaks.

## Gunakan create-prepared-statement
<a name="querying-with-prepared-statements-cli-using-create-prepared-statement"></a>

Dalam sebuah `create-prepared-statement` perintah, tentukan teks query dalam `query-statement` argumen, seperti pada contoh berikut.

```
aws athena create-prepared-statement 
--statement-name PreparedStatement1 
--query-statement "SELECT * FROM table WHERE x = ?" 
--work-group athena-engine-v2
```

## Gunakan start-query-execution dan sintaks PREPARE
<a name="querying-with-prepared-statements-cli-using-start-query-execution-and-the-prepare-syntax"></a>

Gunakan perintah `start-query-execution`. Masukkan `PREPARE` pernyataan dalam `query-string` argumen, seperti pada contoh berikut:

```
aws athena start-query-execution 
--query-string "PREPARE PreparedStatement1 FROM SELECT * FROM table WHERE x = ?" 
--query-execution-context '{"Database": "default"}' 
--result-configuration '{"OutputLocation": "s3://amzn-s3-demo-bucket/..."}'
```

# Jalankan pernyataan yang disiapkan menggunakan AWS CLI
<a name="querying-with-prepared-statements-cli-executing-prepared-statements"></a>

Untuk menjalankan pernyataan yang disiapkan dengan AWS CLI, Anda dapat memberikan nilai untuk parameter dengan menggunakan salah satu metode berikut:
+ Gunakan `execution-parameters` argumennya.
+ Gunakan sintaks `EXECUTE ... USING` SQL dalam argumen. `query-string`

## Gunakan argumen eksekusi-parameter
<a name="querying-with-prepared-statements-cli-using-the-execution-parameters-argument"></a>

Dalam pendekatan ini, Anda menggunakan `start-query-execution` perintah dan memberikan nama pernyataan siap yang ada dalam `query-string` argumen. Kemudian, dalam `execution-parameters` argumen, Anda memberikan nilai untuk parameter eksekusi. Contoh berikut menunjukkan metode ini.

```
aws athena start-query-execution 
--query-string "Execute PreparedStatement1" 
--query-execution-context "Database"="default" 
--result-configuration "OutputLocation"="s3://amzn-s3-demo-bucket/..."
--execution-parameters "1" "2"
```

## Gunakan EXECUTE... MENGGUNAKAN sintaks SQL
<a name="querying-with-prepared-statements-cli-using-the-execute-using-sql-syntax"></a>

Untuk menjalankan pernyataan siap yang ada menggunakan `EXECUTE ... USING` sintaks, Anda menggunakan `start-query-execution` perintah dan menempatkan kedua nama pernyataan yang disiapkan dan nilai parameter dalam `query-string` argumen, seperti pada contoh berikut:

```
aws athena start-query-execution 
--query-string "EXECUTE PreparedStatement1 USING 1"
--query-execution-context '{"Database": "default"}' 
--result-configuration '{"OutputLocation": "s3://amzn-s3-demo-bucket/..."}'
```

# Buat daftar pernyataan yang disiapkan menggunakan AWS CLI
<a name="querying-with-prepared-statements-listing"></a>

Untuk membuat daftar pernyataan yang disiapkan untuk grup kerja tertentu, Anda dapat menggunakan perintah [list-prepared-statements](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-prepared-statements.html) AWS CLI Athena atau tindakan [ListPreparedStatements](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListPreparedStatements.html)Athena API. parameter `--work-group` diperlukan.

```
aws athena list-prepared-statements --work-group primary
```