我想知道是否有可能调用一个同时具有in和out UDT(用户定义类型)参数的Oracle存储过程?
这是我一直在做的例子:
我有5个结构对应于我的Oracle数据库中的5个UDT:
struct ASO_BOOKABLE {
aso_id: String,
forg_types: FORGTYPE,
}
struct FORGTYPE {
values: Vec<i8>,
}
struct BOOKABLETYPE {
bookables: BOOKABLETABTYPE,
STATUS: String,
}
struct BOOKABLETABTYPE {
values: Vec<BOOKABLE>,
}
struct BOOKABLE {
ifi_id: String,
head_id: String,
forgtet_id: String,
}
正如您所看到的,有很多UDT,甚至是嵌套表。我想调用我的存储过程,它接受一个ASO_BOOKABLE
对象作为IN参数,并有一个OUT参数BOOKABLETYPE
。
我的直觉是我应该使用这样的东西:
let rows = connection.query_as(
"CALL myStoredProcedure($1, NULL)",
&[&ASO_BOOKABLE as &(dyn ToSql)],
)?;
我不确定这是否是正确的方法,我也有一点困难,为我的结构体编写FromSql
和ToSql
trait实现。有人能给我指个方向吗?
1条答案
按热度按时间8zzbczxx1#
下面是示例代码。