1

postgres のドキュメントにコメントされている指示に従ってログを CSV 形式で作成し、対応するフィールドを含むテーブルをデータベースに作成します ( http://www.postgresql.org/docs/9.0/static/runtime -config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG )

CSV の内容は次のようになります。

2013-11-07 23:07:31.524 CET,"postgres","postgres",5556,"::1:62188",527c0f1e.15b4,1,"idle",2013-11-07 23:07:26 CET,2/23,0,LOG,00000,"sentencia: DROP TABLE public.mytable",,,,,,,,,"pgAdmin III - Browser"

しかし、COPY 命令を実行すると、次のようになります。

COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;

タイプ タイムスタンプとタイム ゾーンの構文が無効であることを示すエラーが発生します。

ERROR:  la sintaxis de entrada no es válida para tipo timestamp with time zone: «2013-11-07 23:04:59.124 CET»
CONTEXT:  COPY postgreslog, línea 1, columna log_time: «2013-11-07 23:04:59.124 CET»
********** Error **********
ERROR: la sintaxis de entrada no es válida para tipo timestamp with time zone: «2013-11-07 23:04:59.124 CET»
SQL state: 22007
Context: COPY postgreslog, línea 1, columna log_time: «2013-11-07 23:04:59.124 CET»

たとえば PgAdminIII を使用してレジストリを直接挿入し、「log_time」列の値として「2013-11-07 23:07:31.524 CET」を設定すると、正しく挿入されます。

何が起こっているか知っている人はいますか?

どうもありがとう。

4

1 に答える 1