1

ばかげているように聞こえるかもしれませんが、libpqを使用してCプログラムで作業しているときに、どの種類のSQLステートメント(INSERT、SELECT、UDATEなど)がPostgreSQLでプリペアドステートメントを持っているかを特定する必要があります。

少し違う説明をさせてください。PostgreSQLデータベースへのアクセスを提供するlibpqライブラリを使用して、Cで小さなアプリケーションを開発しています。PostgreSQLで(PQprepareコマンドを使用して)プリペアドステートメントがありますが、実行する前に、SQLステートメントの種類(SELECT、...)を知りたいと思います。

なぜあなたは尋ねるかもしれませんか?アプリケーションが別のソースからSQLクエリを読み取る、つまりハードコーディングされていない、とだけ言っておきましょう。もちろん、PostgreSQLに送信する前にアプリのSQLを解析することもできますが、PostgreSQLがそれを実行できると非常に便利です。

例として、OracleはOCIライブラリを介してこの情報を返すことができます。

4

1 に答える 1

1

システムカタログを照会できます。

SELECT * FROM pg_prepared_statements

列の「クライアントによって送信されたクエリ文字列」を含む、準備されたステートメントに関する詳細情報を保持しますstatement
詳細については、こちらのマニュアルをご覧ください

単一の有効なSQLステートメントがこれらのキーワードすべてを同時に保持できることに注意してください:INSERT、、(たとえば、書き込み可能なWITH句内)SELECTUDATE

于 2011-12-05T00:03:23.593 に答える