将Oracle行序列化为XML

时间:2009-01-29 14:40:11

标签: xml oracle serialization

我想创建一个存储过程,该过程采用表名和row_id,并可以将其序列化为xml字符串。

该表可能包含clobs和blob。

我可以在PL / SQL中执行此操作,还是必须使用Java?

这样做的主要目标是在一些表上包含所有更新和删除的表,保留X最新版本或X天的数据(该表包含chg_date(default:sysdate),{{1} },chg_type(U or D),可能还有一些关于用户的元数据)。

可能的用途:    - 它还可以保留所有数据并用作日志    - 将行返回到任何先前值的功能。    - 能够以特定格式进行EDI。

我不想使用Oracle的闪回查询来实现这一目标,因为无法保证数据的可用性。

1 个答案:

答案 0 :(得分:6)

Oracle具有以xml格式返回查询的功能。

在此示例中,将& table替换为您的表名,将& rowid替换为rowid。我测试了它,它似乎与clobs和blob一起使用。对于blob,它以十六进制形式返回数据。

SELECT DBMS_XMLGEN.getxmltype ('select * from &table_name where rowid = ''&rowid''' )
  FROM DUAL