Oracle SQLマクロ表: パラメータのあるビュー! (2025/05/01)
Oracle SQLマクロ表: パラメータのあるビュー! (2025/05/01) https://medium.com/oracledevs/oracle-sql-macro-tables-finally-views-with-parameters-bc78286ab010 投稿者: vijay balebail View with parameters Oracleでは、強力でエレガントな機能であるSQLマクロが導入されました。この記事では、インライン・ビューのように動作するがスマートなパラメータ化されたSQLブロックを作成できるSQLマクロ表のみに焦点を当てます。 ビューにパラメータを渡したいと思ったことがあるなら、それはあなたの解決策です。 📌SQLマクロ表は「パラメータ付きビュー」と考えてください。 通常のSQLと同様に解析および最適化された問合せが返されます。ただし、複雑なPL/SQL構造に依存することなく、引数を渡すことができます。 SQLマクロテーブルで解決する問題 次のことを行います。 動的入力(検索語やしきい値など)の埋込み SQLロジックでの入力の使用(フィルタリングや順序付けなど) 多数の問合せまたはツールでロジックを再利用 ビューを本能的に使用しようとする場合もありますが、ビューはパラメータを使用できません。回避策は次のとおりです。 パイプラインPL/SQLファンクションの記述 カスタムSQLタイプの定義(オブジェクトと表) ループとPIPE ROWでロジックをラップ しかし、これはオプティマイザーフレンドリーではありません。 SQLマクロテーブルは、これをクリーンに解決します。 例: Top-N Vector類似性検索(Oracle 23ai) OracleのVECTOR_EMBEDDING関数を使用して質問を埋め込み、ベクトル・ストアから最も類似した上位N件の結果を取得するとします。 ベクトル検索を行うSQL問合せの例を次に示します。このクエリは、sqlplus から実行できます。vector_embdding関数を使用して質問を埋め込み、vector_distanceを使用してベクトル検索を実行することに注意してください。 WITH a AS ( SELECT VECTOR_EMBEDDING(ALL_MINILM...