
こんにちわ、よろしくお願いします。
OS:WindowsXP
PostgreSQL:8.4.0
DBの文字コードはUTF8で構築しています。
【現象】
文字型のカラムに¥を含んだ文字列を挿入しようとすると以下のエラーになります。
WARNING: nonstandard use of escape in a string literal at character 331
SQL実行中に以下のエラーが発生しました。
ERROR: invalid byte sequence for encoding "UTF8": 0x00
エラーとなるのは例えば「C:\temp\hoge.txt」といった文字列です。
ただし、
「C:/temp/hoge.txt」
「C:\\temp\\hoge.txt」
とした場合は正常に挿入が出来ます。
8.1.11で同じプログラムを動かしているときは問題なく動作していました。
PostgreSQLを最新の8.4.0にバージョンアップしたところ上記のエラーが発生するようになりました。
エンコードの問題かと思い
Postgresql.confのclient_encodingを色々設定してみましたが、解決しませんでした。
解決法が見当たらず困っています。
よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
\(バックスラッシュ) は制御文字です。
SQL文の中で特殊な文字コードを表現するために使われます。
たとえば、\n なら改行を意味します。
今回の場合、
ERROR: invalid byte sequence for encoding "UTF8": 0x00
とのことなので、SQL文の中に "\0" のような文字が
含まれているのではないでしょうか?
文字として扱いたいなら、必ず"\\"とエスケープする必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
何も表示されない実行時エラー...
-
ストアドの戻り値(配列)について
-
バッチファイルからのBCP起動に...
-
Oracle 8i コンマ(,)を含むデ...
-
Access から SQLserver に接続...
-
データベースのOPEN,CLOSEについて
-
SQLServer2008と2000の共存
-
99bb.com のライセンスバック...
-
ノートンの解約(「ライセンス...
-
セキュリティソフト カスペルス...
-
SQLCMDにて教えていただきたい...
-
ストアドの速度がクエリの30...
-
SQLServerでViewの参照・・・
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
msconfigで軽くしたい 必要のな...
-
マザーボード交換についてです ...
-
SQL Server に繋がらない
-
SQLサーバー接続 特定のPCがWin...
-
Windows 11の対象に ryzen の第...
-
Excel-VBAの「しばらくお待ちく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
PostgreSqlでFunctionの作成に...
-
GROUP BYでエラーが発生
-
Access2000環境に対応するMid関...
-
sqlで文字列を最後に追加したい
-
何も表示されない実行時エラー...
-
バッチファイルからのBCP起動に...
-
ACCESS ADOでupdateが効かない
-
ACCESS2000ディスクまたはネッ...
-
オブジェクト名 '<table>' が無...
-
エクセルのグループボックス枠...
-
エクセルマクロで指定範囲内の...
-
VB6より長文INSERT文でORA1756...
-
SQLServerが存在しないか、アク...
-
エクセルからSQLサーバー ...
-
ACCESSで作成したアプリケーシ...
-
SQLServer・ストアドプロシージ...
-
クエリの存在チェック
-
分散トランザクションを開始で...
おすすめ情報