我有使用MSSQL 2008的经验,最近不得不从MSSQL迁移到Oracle 10g。
设计(oracle)表的人使用BLOB类型列来存储需要从中提取数据的xml。
在mssql中,您只需将xml字符串存储为XML类型或使用VARCHAR(MAX)即可。假设有一个名为myTable的列的表myColumn包含VARCHAR(MAX)如果要将<ROOT><a>111</a></ROOT>类型转换为VARCHAR(MAX)类型,只需编写如下内容:

SELECT CONVERT(XML, myColumn) FROM myTable

如果需要,可以使用xquery从转换后的列中获取数据,如下所示:
SELECT CONVERT(XML, myColumn).query('/ROOT/a')

如果mycolumn是一个XML,那么在oracle 10g中如何完成相同的任务,而不必编写存储过程,但仍然使其可重用?blob中的文本是BLOB
我非常感谢你的帮助,因为我有点急着要这个。

最佳答案

select
XMLType( BLOB_COLUMN,
         1 /* this is your character set ID.
                   1 == USASCII */
       ) as XML
from my_table;

对于更多字符集:
http://www.mydul.net/charsets.html

09-10 05:58
查看更多