質問: ### 前提・実現したいこと 現在、稼働中のCentOSのサーバが1台あります。 CentOSにはpostgreSQLがインストールされています。 稼働中のサーバと同一バージョンのサーバをもう1台用意し、 postgreSQLも同一のバージョンをインストールした所、 下記のような現象が起き、解決出来ません。 稼働中のサーバに同一のクエリを実行してもエラーは発生しません。 追記 稼働中のサーバでは、C#のプログラムでpostgreSQLを使用しております。 同じC#のプログラムを、用意したもう1台のサーバ(今回ご相談しているサーバ)でも利用したいです。 ただ、C#のプログラムに変更を加えたくないので、 SQL自体の改変ではなく、サーバ設定での改変で同一の動作をさせたいと考えております。 ### 発生している問題・エラーメッセージ ``` postgresのデータベースのリストアや、"\"バックスラッシュを含むINSERT文等で下記の構文エラーが発生します。 ERROR: syntax error at or near "XXX" ``` ### 該当のソースコード ``` INSERT INTO m_application (appname,filename,path,version,kubun) values ('XXX','XXX','\XXX\','XXX','XXX') ``` ### 試したこと 1postgreSQLの再インストール 2EncodeやCollate、Ctypeが稼働中のサーバと同一か確認。 Encode=UTF8, Collate=C, Ctype=C 3postgresql.confやpg_hba.confの設定情報が稼働中のサーバと同一か確認。 4サーバの再起動 ### 補足情報(FW/ツールのバージョンなど) OS:centOS 6.9 SQL:postgreSQL 9.5
回答: standard_conforming_stringsの設定です。 `\`がエスケープとして扱われてエラーとなっています。 postgresql.confが同じなら、alter databaseなどのコマンドで独自に設定されているのでしょう。 PostgreSQL 特定のデータベースやユーザのみパラメータの設定値を変更する方法