如何将AQMessage STRUCT对象转换为UDT对象

时间:2015-12-28 19:24:50

标签: java oracle oracle-aq

尝试从java中的oracle AQ队列读取带有UDT有效负载的消息。我使用jpub为数据库中的Oraacle UDT / Object创建java类(对象名为MESSAGE_TYP)。

jpub输出:

public class message_typ implements ORAData, ORADataFactory ...

然后deuque消息并获得STRUCT:

oracle.jdbc.aq.AQMessage msg = conn.dequeue(queueName, deqopt, "MESSAGE_TYP");
STRUCT st = msg.getSTRUCTPayload();

那么我如何进入具体的message_typ对象引用呢?

1 个答案:

答案 0 :(得分:0)

想出来。在调用msg.getSTRUCTPayload()之后:

    message_typ typ;  // My UDT created with jpub
    ORADataFactory of = message_typ.getORADataFactory();
    ORAData od = of.create(st, 1);
    typ = (message_typ)od;