如何将 AQMessage STRUCT 对象转换为 UDT 对象
How to cast AQMessage STRUCT object to UDT object
正在尝试从 java 中的 oracle AQ 队列中读取带有 UDT 负载的消息。我使用 jpub 在数据库中为我的 Oracle 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 对象引用?
想通了。调用 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;
正在尝试从 java 中的 oracle AQ 队列中读取带有 UDT 负载的消息。我使用 jpub 在数据库中为我的 Oracle 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 对象引用?
想通了。调用 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;