これはばかばかしいほど簡単に答えられるはずですが、私の人生では、これについて決定的な答えを見つけることはできません.
使える "?" 他のデータベース エンジンと同じように、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 ステートメントを書き直す必要がないようにできれば、非常に素晴らしいことです。