Skip to main content
千幸 佐藤 preguntó en Japan

お世話になっております。

データ接続を抽出にし、ある1テーブルに対しカスタムSQLを追加しています。

そのカスタムSQLには文字列のパラメータを1つ埋め込んでいます。​

やりたいこととしてはまずデータの抽出を行い全レコードを取ってきてからカスタムSQLのwhere句でパラメータ​を使用しデータの絞り込みを行いたいです。

しかし、1度上記を行い、次に違う値をパラメータとして渡してデータの絞り込みをやり直す場合に、その検索対象が元の全レコード含むテーブルではなく、以前のパラメータ条件で絞り込まれたレコードになってしまうため、絞り込みをやり直してもレコードが1件も表示されなくなってしまいます。

これを回避する方法はありますでしょうか?

やはりデータ接続をliveにしなければならないでしょうか?

また、カスタムSQLに渡す文字列パラメータ​でワイルドカードを使用することは可能でしょうか?

ご教示の程よろしくお願い致します。​

2 respuestas
  1. 22 ene 2021, 09:09

    カスタムSQLは抽出よりも前に走るので、パラメータを含むカスタムSQLで作成された表を抽出すると、その抽出データ上でパラメーターを変えても効果がありません。基本的に、カスタムSQL内でパラメータを使用するときはライブ接続を維持することになります。(巨大な抽出をServerに作らせる場合などの特殊なケースを除く)​

    文字列パラメータでワイルドカードを使用するというのは、具体的にどういった状況なのでしょうか?

    例えば、​

    SELECT * FROM ​schema.table WHERE name LIKE <parameter>

    のカスタムSQLに対して <parameter> に​ %田中% を入れることはできますよ。

    (もしかしたら接続先によっては勝手が違うかもしれませんが...)​

0/9000