convertir oracle blob de type xml
J'ai de l'expérience à l'aide de MSSQL 2008 et j'ai récemment eu à se déplacer à partir de MSSQL Oracle 10g.
Les gens qui ont conçu l' (Oracle), qui a un article que j'ai besoin d'extraire des données à partir utilisé une BLOB
colonne de type XML ils ont besoin de stocker.
Dans MSSQL vous aurait simplement stocké votre chaîne XML dans un XML
type ou utilisé un VARCHAR(MAX)
. Supposons une table myTable
avec une colonne appelée myColumn
qui est un VARCHAR(MAX)
contenant <ROOT><a>111</a></ROOT>
Si vous vouliez convertir le VARCHAR(MAX)
type à une XML
type, on peut simplement écrire quelque chose comme:
SELECT CONVERT(XML, myColumn) FROM myTable
si vous le vouliez, vous pourriez alors utiliser XQuery pour obtenir des données à partir de la conversion de la colonne, comme suit:
SELECT CONVERT(XML, myColumn).query('/ROOT/a')
Comment voulez-vous faire la même chose dans Oracle 10g si macolonne était un BLOB
, sans avoir à écrire une procédure stockée, mais encore il réutilisable? Le texte dans le BLOB est UFT-8
.
J'apprécierais vraiment votre aide, que je sorte de besoin dans une hâte.
Vous devez vous connecter pour publier un commentaire.
Pour plus de jeux de caractères:
http://www.mydul.net/charsets.html
Vous pouvez convertir à partir d'une GOUTTE pour un CLOB et passer ensuite le CLOB dans le constructeur de
XMLTYPE
. Voici une fonction...Et pour votre exemple ci-dessus, vous pouvez utiliser le
EXTRACT()
fonction:La ci-dessus sera de retour une autre XMLTYPE. Si vous souhaitez obtenir la valeur textuelle du nœud, vous pouvez utiliser le
EXTRACTVALUE()
fonction de la place.XMLTYPE
. Comment allez-vous l'appeler?sources :