0

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

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 对象引用呢?

4

1 回答 1

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;
于 2015-12-28T20:26:49.113 回答