Soooooo,我想使用嵌套记录,并从芭蕾舞女演员中的sql / jdbc recordSet中加载它。
如果我们有:
type Foo record{
string bar;
string baz;
}
我们可以从具有匹配形式的resultSet中直接创建Foo记录:
table<Foo>|error dt = testDB->select("SELECT bar,baz FROM ferble",Foo);
但是有办法吗...
type Foo record{
string bar;
Baz baz;
}
type Baz record{
string qux;
string quxx;
}
table<Foo>|error dt = testDB->select("SELECT bar,qux,quxx FROM ferble",Foo);
虽然在代码中很容易做到,但是当结果很宽时,它将变得非常乏味。如果您尝试创建一条可以转换为模式定义的JSON的记录,那将是很高兴的。
答案 0 :(得分:0)
type Foo record {
string bar;
Baz baz;
}
type Baz record {
string qux;
string quxx;
}
table<Foo>|error dt = testDB->select("SELECT bar,qux,quxx FROM ferble",Foo);
在芭蕾舞女演员中不允许这样做。同样,在语义上不允许它是错误的,因为记录类型表示表架构,其中每个列类型都映射到Ballerina记录字段类型。该查询返回一个结果集,该结果集包含3列,每列关联一种类型。然后,您尝试将给定行映射到的Ballerina记录应具有对应的类型作为字段类型。
但是,如果您选择以下内容,
table<Foo>|error dt = testDB->select("SELECT bar,baz FROM ferble",Foo);
其中,baz是数据库中具有qux和quxx字段的用户定义类型/结构类型,然后将其映射到上述Foo记录将是正确的。