apostrophe
およびquotation mark
SQLのクエリ文字列の役割はどれですか? どのapostrophe
ように交換できますか?
主な関心は、PostgreSQL での特定の役割です。
混乱apostrophe
した SQL クエリを除外すると、次のようになります。
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = admin;
admin が値の場合、'column' admin does not exist エラーを取得します。「admin」と書くと、問題が修正されます。
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = 'admin';
実際の問題は、別のコンテキストでクエリを使用することです:
<module-option name="rolesQuery" value="SELECT 'role', 'Roles' FROM "USER_ROLES" WHERE login='?'"/>
要求どおり、テーブルの定義は次のとおりです。
CREATE TABLE "USER_ROLES" (
login text NOT NULL,
role text,
CONSTRAINT "USER_ROLES_pkey" PRIMARY KEY (login ),
CONSTRAINT "USER_ROLES_login_fkey" FOREIGN KEY (login)
REFERENCES "USER" (login) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
PostgreSQL バージョン 9.1。