我有使用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