文字列に基づいて SQL ステートメントを実行したいと思います。文字列を返す関数を使用して SQL ステートメントを作成しました。返されたステートメントを実行する方法を誰か説明できますか? プレーンSQLではできないことはわかっているので、関数に入れようと考えていました。唯一の問題は、ステートメント内の列が常に同じであるとは限らないため、列に使用するデータ型がわからないことです。Postgres 9.1.0 を使用しています。
たとえば、関数から返された SQL 文字列が次のようになっているとします。
abcからopen、closed、discardedを選択
ただし、次のこともできます 。
または abcから開、閉を選択
これらの文字列を実行して、結果がステートメントにリストされた列のみを含むテーブルとして返されるようにするにはどうすればよいですか?
編集:関数は PL/pgSQL で記述されています。結果は、値のない列を表示したくないレポートに使用されます。したがって、私が作成した関数は、値を持つすべての列の名前を返し、それを SQL ステートメントに追加します。
ご協力いただきありがとうございます!