您如何从PostgreSQL和JDBC中选择复合类型?我发现的唯一答案建议您必须解析字符串值。我很糟糕。
create type person as (age int, name text);
create table test (id int, p person);
insert into test values (1, ROW(45, 'Joe'));
在Java ...
var ps = pgConn.prepareStatement("select * from test")
var rs = ps.executeQuery()
rs.next()
// PGobject here is not part of JDBC, but specific to the PG driver.
var p = (PGobject)rs.getObject(2)
// p.value is "(45,Joe)"
显然,特定的值并不难,但是嵌套的单引号,逗号,时间戳等。我期望有一些理智的东西,例如一种获取单个字段的方法:
p.getInt(1)
p.getString(2)
person[]
。
instead,do
另一个答案几乎是对的。
您可以通过在括号中在括号中首先在where子句中写下一个字段来访问复合类型的值。例如: