我正在运行PostgreSQL 9.6,并且我有一个包含大量列的表。 我有一个包含以下格式的csv文件:
{ column_nameY: valueX, column_nameY: valueY, ... }
JSON对象具有以下格式:
id
JSON对象中的column_names匹配PostgreSQL表中的列。
是否有动态方式导入此类文件,因此我会从JSON对象中获取insert_time
,final Date todayDate = new Date();
System.out.println(todayDate);
System.out.println(new SimpleDateFormat("MM-dd-yyyy").format(todayDate));
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(todayDate));
System.out.println(todayDate);
和其余列值?
JSON对象中列的顺序可能与PostgreSQL表中列的顺序不匹配。
答案 0 :(得分:0)
我假设您知道如何将该csv文件导入到postgresql中,并且您知道该json对象字段中的字段。
首先我们创建一个表来存储csv文件的内容。请注意,该JSON字段的数据类型是jsonb。
create table test11 (id int, insert_time timestamp, json_object jsonb )
知道导入csv文件。但为了便于说明,我将示例数据插入此表中。
insert into test11 (id, insert_time, json_object) values (1, '2017-11-14'::timestamp, '{ "column_nameX": "3", "column_nameY": "4" }'::jsonb);
insert into test11 (id, insert_time, json_object) values (1, '2017-11-14'::timestamp, '{ "column_nameX": "13", "column_nameY": "14" }'::jsonb);
我们现在从该表中选择;
Select id, insert_time, json_object->>'column_nameY' as Column_NameY, json_object->>'column_nameX' as Column_NameX from test11
你的结果应该是这样的......
id |insert_time |column_namey |column_namex
1 |11/14/2017 |4 |3
1 |11/14/2017 |14 |13
-HTH