Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

パラメータ化されたクエリを使用する

フォーカスモード

このページの内容

パラメータ化されたクエリを使用する - Amazon Athena

Athena のパラメータ化されたクエリを使用して、実行時に同じクエリを異なるパラメータ値で再実行し、SQL インジェクション攻撃を防ぐことができます。Athena では、パラメータ化されたクエリは、任意の DML クエリまたは SQL プリペアドステートメントの実行パラメータの形式をとることができます。

  • 実行パラメータを持つクエリは 1 つのステップで実行でき、ワークグループ固有ではありません。パラメータ化する値の DML クエリには、疑問符を付けます。クエリを実行するときは、実行パラメータ値を順番に宣言します。パラメータの宣言とパラメータへの値の割り当ては、同じクエリで、しかし分離された方法で行えます。プリペアドステートメントとは異なり、実行パラメータを含むクエリを送信するときにワークグループを選択できます。

  • プリペアドステートメントには、PREPAREEXECUTE の 2 つの別個の SQL ステートメントが必要です。まず、PREPARE ステートメントでパラメータを定義します。その後、定義したパラメータの値を指定する EXECUTE ステートメントを実行します。プリペアドステートメントはワークグループ固有です。それらが属するワークグループのコンテキスト外では実行できません。

考慮事項と制限事項

  • パラメータ化されたクエリは、Athena エンジンバージョン 2 以降でサポートされています。Athena エンジンバージョンの詳細については、「Athena エンジンのバージョニング」を参照してください。

  • 現在、パラメータ化されたクエリは、SELECTINSERT INTOCTASおよび UNLOAD ステートメントでのみサポートされています。

  • パラメータ化されたクエリでは、パラメータは位置パラメータであり、? で示されます。パラメータには、クエリ内の順序によって値が割り当てられます。名前が挙げられているパラメータはサポートされていません。

  • 現在、? パラメータは WHERE 句にのみ配置できます。SELECT ? FROM table のような構文はサポートされていません。

  • 疑問符パラメータを二重引用符または一重引用符で囲むことはできません (つまり、'?' および "?" は有効な構文ではありません)。

  • SQL 実行パラメータを文字列として扱うには、二重引用符ではなく一重引用符で囲む必要があります。

  • 必要に応じて、パラメータ化された条件に値を入力するときに CAST 関数を使用できます。たとえば、クエリでパラメータ化した date 型の列があり、データ 2014-07-05 をクエリする場合は、パラメータ値に CAST('2014-07-05' AS DATE) を入力すると結果が返されます。

  • 準備済みステートメントはワークグループ固有であり、準備済みステートメント名はワークグループ内で一意である必要があります。

  • 準備済みステートメントには IAM 許可が必要です。詳細については、「準備済みステートメントへのアクセスを構成する」を参照してください。

  • Athena コンソールの実行パラメータを持つクエリでは、疑問符の数が最大 25 個に制限されます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.