AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Athenaで特定の語に対するコメントアウトが機能しない

0

Athena engine version 3のクエリエディタにて、 「-- prepare」から始まるコメント行の後に、「?」を含むクエリを実行すると、「INVALID_PARAMETER_USAGE」エラーが発生します。

エラーが発生するクエリ例①:

-- prepare 
SELECT * FROM db.table WHERE hoge=?

実行結果:

INVALID_PARAMETER_USAGE: line 2:1: Incorrect number of parameters: expected 1 but found 0

対して、コメント行を削除したり、prepareの前に他の語を入れると正常に実行されます。

成功するクエリ例:

-- a prepare 
SELECT * FROM db.table WHERE hoge=?

実行結果:

(パラメータ入力画面が開き、実行に成功する)

調査のほどよろしくお願いいたします。

質問済み 2ヶ月前91ビュー
1回答
0

この問題は、Athena engine version 3の特定の動作に関連している可能性があります。Athenaでは、クエリ内で「?」を使用するとパラメータ化されたクエリとして解釈される場合があります。

あなたの例では、「-- prepare」というコメントの後に「?」を含むクエリがあります。Athenaはこれをパラメータ化されたクエリとして解釈し、パラメータの値を期待していますが、実際には提供されていないため、エラーが発生しています。

このエラーを解決するには、以下のいくつかの方法があります:

  1. パラメータ化されたクエリを使用する意図がない場合は、「?」を実際の値に置き換えてください。

  2. コメントの形式を変更してみてください。例えば、「--」の代わりに「/」と「/」を使用して複数行コメントを作成することができます。

  3. コメントと実際のクエリの間に空行を入れてみてください。

  4. 実際にパラメータ化されたクエリを使用する意図がある場合は、適切なパラメータ値を提供してください。

これらの方法のいずれかで問題が解決しない場合は、Athenaの特定のバージョンや設定に関連する問題である可能性があります。その場合は、AWS サポートに連絡して詳細な調査を依頼することをお勧めします。
Sources
Athena engine version 3 - Amazon Athena
Athena engine version reference - Amazon Athena
Athena error catalog - Amazon Athena

profile picture
回答済み 2ヶ月前
  • 提案手法を試しましたが解決しませんでした。

    ①パラメータ化されたクエリを使用する意図がない場合は、「?」を実際の値に置き換えてください。 → パラメータ化されたクエリを使用したいです。「?」を実際の値に置き換えれば動きます。

    ②コメントの形式を変更してみてください。例えば、「--」の代わりに「/」と「/」を使用して複数行コメントを作成することができます。 → 複数行コメントの形式に変更しても同じエラーが出ます。

    ③コメントと実際のクエリの間に空行を入れてみてください。 → 空行を入れても同じエラーが出ます。

    ④実際にパラメータ化されたクエリを使用する意図がある場合は、適切なパラメータ値を提供してください。 → 例にあげた「-- prepare」と「?」を含むクエリを実行した場合、パラメータ入力画面がそもそも表示されません。コメント行を削除すれば入力画面は表示され、実行も成功します。

    継続調査のほどよろしくお願いいたします。

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ