代码之家  ›  专栏  ›  技术社区  ›  OldProgrammer

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

  •  0
  • OldProgrammer  · 技术社区  · 10 年前

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

    jpub输出:

    public class message_typ implements ORAData, ORADataFactory ...
    

    然后Deque消息并得到STRUCT:

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

    那么,我该如何获得具体的message_typ对象引用呢?

    1 回复  |  直到 10 年前
        1
  •  0
  •   OldProgrammer    10 年前

    想出来了。调用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;