Thread
-
CSV From Oracle with timestamp column getting errors
Saha, Sushanta K <sushanta.saha@verizonwireless.com> — 2021-03-22T20:37:20Z
\COPY table1 FROM '/tmp/Oracle_2020_06.csv' DELIMITER ',' CSV HEADER; ERROR: invalid input syntax for type timestamp: "01-JUN-20 06.04.20.634000 AM" CONTEXT: COPY table1, line 2, column last_update_timestamp: "01-JUN-20 06.04.20.634000 AM" Appreciate any help with this psql command. Thanks & Regards .... Sushanta
-
Re: CSV From Oracle with timestamp column getting errors
Saha, Sushanta K <sushanta.saha@verizonwireless.com> — 2021-03-22T20:42:02Z
The table column definition: Column | Type | ---------------------------+--------------------------------+ last_update_timestamp | timestamp(6) without time zone | Thanks & Regards .... Sushanta On Mon, Mar 22, 2021 at 4:37 PM Saha, Sushanta K < sushanta.saha@verizonwireless.com> wrote: > \COPY table1 FROM '/tmp/Oracle_2020_06.csv' DELIMITER ',' CSV HEADER; > ERROR: invalid input syntax for type timestamp: "01-JUN-20 > 06.04.20.634000 AM" > CONTEXT: COPY table1, line 2, column last_update_timestamp: "01-JUN-20 > 06.04.20.634000 AM" > > Appreciate any help with this psql command. > > Thanks & Regards > .... Sushanta > > -- *Sushanta Saha|*MTS IV-Cslt-Sys Engrg|WebIaaS_DB Group|HQ - * VerizonWireless O 770.797.1260 C 770.714.6555 Iaas Support Line 949-286-8810* -
Re: CSV From Oracle with timestamp column getting errors
Victor Yegorov <vyegorov@gmail.com> — 2021-03-22T20:47:08Z
пн, 22 мар. 2021 г. в 21:38, Saha, Sushanta K < sushanta.saha@verizonwireless.com>: > \COPY table1 FROM '/tmp/Oracle_2020_06.csv' DELIMITER ',' CSV HEADER; > ERROR: invalid input syntax for type timestamp: "01-JUN-20 > 06.04.20.634000 AM" > CONTEXT: COPY table1, line 2, column last_update_timestamp: "01-JUN-20 > 06.04.20.634000 AM" > > Appreciate any help with this psql command. > I would recommend issuing one of these on the Oracle side *before* taking the CSV snapshot. export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" ALTER SESSION SET nls_date_format='YYYY-MM-DD HH24:MI:SS'; Otherwise, you have to load this CSV file in a table, that has `text` type for the column and do a post-processing, smth like: INSERT INTO permanent_tab SELECT *, to_timestamp(col, 'DD-MON-YY HH12.MI.SS.SSSSS AM') FROM temp_table; Hope this helps. -- Victor Yegorov -
Re: CSV From Oracle with timestamp column getting errors
Tim Cross <theophilusx@gmail.com> — 2021-03-22T20:56:42Z
"Saha, Sushanta K" <sushanta.saha@verizonwireless.com> writes: > \COPY table1 FROM '/tmp/Oracle_2020_06.csv' DELIMITER ',' CSV HEADER; > ERROR: invalid input syntax for type timestamp: "01-JUN-20 06.04.20.634000 AM" > CONTEXT: COPY table1, line 2, column last_update_timestamp: "01-JUN-20 06.04.20.634000 AM" > The problem is psql doesn't understand/recognise the timestamp format being used in the CSV dump from Oracle. Modify the SQL used to extract the data from Oracle so that it formats the timestamp as a string which psql can parse into a timestamp type - for example ISO or any of the psql timestamp formats (see psql manual). -- Tim Cross
-
Re: [E] Re: CSV From Oracle with timestamp column getting errors
Saha, Sushanta K <sushanta.saha@verizonwireless.com> — 2021-03-23T01:04:44Z
Awesome. Thanks Victor! .... Sushanta On Mon, Mar 22, 2021 at 4:47 PM Victor Yegorov <vyegorov@gmail.com> wrote: > пн, 22 мар. 2021 г. в 21:38, Saha, Sushanta K < > sushanta.saha@verizonwireless.com>: > >> \COPY table1 FROM '/tmp/Oracle_2020_06.csv' DELIMITER ',' CSV HEADER; >> ERROR: invalid input syntax for type timestamp: "01-JUN-20 >> 06.04.20.634000 AM" >> CONTEXT: COPY table1, line 2, column last_update_timestamp: "01-JUN-20 >> 06.04.20.634000 AM" >> >> Appreciate any help with this psql command. >> > > I would recommend issuing one of these on the Oracle side *before* taking > the CSV snapshot. > export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" > ALTER SESSION SET nls_date_format='YYYY-MM-DD HH24:MI:SS'; > > Otherwise, you have to load this CSV file in a table, that has `text` type > for the column and do a post-processing, > smth like: > > INSERT INTO permanent_tab > SELECT *, to_timestamp(col, 'DD-MON-YY HH12.MI.SS.SSSSS AM') FROM > temp_table; > > Hope this helps. > > -- > Victor Yegorov > -- *Sushanta Saha|*MTS IV-Cslt-Sys Engrg|WebIaaS_DB Group|HQ - * VerizonWireless O 770.797.1260 C 770.714.6555 Iaas Support Line 949-286-8810*