【发布时间】:2011-07-06 19:09:43
【问题描述】:
我想从 CSV 文件创建一个新的嵌入式 h2 数据库。 这是csv文件的sn-p
国家、城市、重点城市、地区、人口、纬度、经度
ad,aixovall,Aixovall,06,,42.4666667,1.4833333
ad,andorra,Andorra,07,,42.5,1.5166667
ad,andorra la vella,Andorra la Vella,07,20430,42.5,1.5166667
ad,andorra-vieille,Andorra-Vieille,07,,42.5,1.5166667
ad,andorre,Andorre,07,,42.5,1.5166667
我不想检索 csv 文件的所有字段。实际上,除了 City 和 Region 字段之外,我都想要它们。
此外,我只想将 csv 文件的内容插入数据库,前提是 POPULATION 的内容不为空。
因此,在上面的 csv 示例中,我们必须只将第 3 行插入到 h2 表 WORLDCITIES 中,因为它的 'population' 字段已指示。
这是我编写的代码的 sn-p。但是,正如您所见,这还不够:
conn = DriverManager.getConnection(connectionURL, connectionProps);
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE WORLDCITIES"
+ " AS SELECT COUNTRY, ACCENTCITY, POPULATION, LATITUDE, LONGITUDE"
+ " FROM CSVREAD('snippet.csv'));
如果我理解正确,CSVREAD 使用 VARCHAR 类型创建字段,但我想要这样的东西:
COUNTRY VARCHAR(3)、ACCENTCITY VARCHAR(40)、人口浮点数、纬度浮点数、经度浮点数
提前感谢您的帮助。
【问题讨论】: