2

私の同僚がこの SQL ステートメントを書きましたが、私はそれを理解するのに苦労しました。where句でコロンを使用する目的は正確には何ですか?

WHERE MGM_YYMM like :AS_YYMM

完全なクエリ:

SELECT  A.MGM_YYMM,
        A.MGM_DATE,
        A.MGM_GB,
        A.INDATE,
        A.SUDATE,
        A.EMPNUM,
FROM  SE_MAGAM A(NOLOCK)
WHERE MGM_YYMM like :AS_YYMM
ORDER BY MGM_YYMM DESC
4

1 に答える 1

4

バインド変数です。

プログラム (またはクエリを発行している他のもの) は、値を :AS_YYMM に割り当てます。この場合、MGM_YYMM 列と照合するパターンです。

これらの種類のパラメーター化されたクエリは、一度準備/解析/コンパイル/分析してから、オーバーヘッドを減らしながらさまざまな入力に対して複数回実行できるため (毎回新しいクエリと比較して) 便利です。また、SQL インジェクションに対しても役立ちます (ユーザー入力から動的 SQL ステートメントを構築する場合と比較して)。

于 2012-11-02T02:32:03.360 に答える