我有使用MSsql 2008的经验,最近我不得不从MSsql迁移到Oracle 10g.
设计(Oracle)表的人员(我需要从中提取数据的列)使用BLOB类型列来存储他们需要的 XML.
设计(Oracle)表的人员(我需要从中提取数据的列)使用BLOB类型列来存储他们需要的 XML.
在MSsql中,您只需将XML字符串存储在XML类型中或使用VARCHAR(MAX).假设一个表myTable,其中包含一个名为myColumn的列,它是一个VARCHAR(MAX),包含< ROOT>< a> 111< / a>< / ROOT>如果您想将VARCHAR(MAX)类型转换为XML类型,您只需编写如下内容:
SELECT CONVERT(XML,myColumn) FROM myTable
如果你愿意,你可以使用XQuery从转换后的列中获取数据,如下所示:
SELECT CONVERT(XML,myColumn).query('/ROOT/a')
如果myColumn是BLOB,你将如何在Oracle 10g中完成同样的事情,而不必编写存储过程但仍然可以重用它? BLOB中的文本是UFT-8.
我非常感谢你的帮助,因为我急需这件事.
select XMLType( BLOB_COLUMN,1 /* this is your character set ID. 1 == USASCII */ ) as XML from my_table;