1

これはばかばかしいほど簡単に答えられるはずですが、私の人生では、これについて決定的な答えを見つけることはできません.

使える "?" 他のデータベース エンジンと同じように、postgres では?

例えば:

SELECT * FROM MyTable WHERE MyField = ?

これには $n 構文を使用できることを知っています。たとえば、 psql からこれが機能します。

CREATE TABLE dummy (id SERIAL PRIMARY KEY, value INT);
PREPARE bar(int) AS INSERT INTO dummy (value) VALUES ($1);
EXECUTE bar(10);
SELECT * FROM DUMMY;

しかし、「?」を使用してステートメントを準備しようとすると、たとえば。

PREPARE bar(int) AS INSERT INTO dummy (value) VALUES (?);

私は得る:

エラー: ")" またはその付近の構文エラー 行 1: PREPARE bar(int) AS INSERT INTO ダミー (値) 値 (?);

...それでも、さまざまな場所で「postgres は ? 構文をサポートしている」と読みました。

何が起きてる?postgres は使用をサポートしていますか? $1、$2 などの代わりに。

具体的には、既存の SQL サーバー クエリの束を postgres に移植するのが私の人生を苦しめています。すべての where 条件とすべての SQL ステートメントを書き直す必要がないようにできれば、非常に素晴らしいことです。

4

1 に答える 1