Mam doświadczenie w korzystaniu z MSSQL 2008, a ostatnio musiałem przejść z MSSQL na Oracle 10g. Osoby, które zaprojektowały tabelę (Oracle), która ma kolumnę, z której muszę wyodrębnić dane, użyły kolumny typu BLOB
dla kodu XML, który należy zapisać.Konwersja kropli oracle do typu xml
W MSSQL po prostu przechowywałbyś swój ciąg XML w typie XML
lub używałbyś VARCHAR(MAX)
. Zakładamy tabelę myTable
z kolumną o nazwie myColumn
który jest VARCHAR(MAX)
zawierający <ROOT><a>111</a></ROOT>
Jeśli chcesz przekonwertować typ VARCHAR(MAX)
do typu XML
byłoby po prostu napisać coś takiego:
SELECT CONVERT(XML, myColumn) FROM myTable
jeśli chciałeś, można następnie użyć XQuery aby uzyskać dane z kolumny przebudowanej, tak:
SELECT CONVERT(XML, myColumn).query('/ROOT/a')
Jak można osiągnąć to samo w Oracle 10g jeśli myColumn był BLOB
, bez konieczności pisania procedury przechowywanej, ale nadal jestem czy można go użyć do ponownego użycia? Tekst w BLOB to UFT-8
.
Byłbym wdzięczny za pomoc, ponieważ potrzebuję tego w pośpiechu.
Hi Davmos bardzo dziękuję za odpowiedź, staram się to rozwiązanie, które dał. Dowiesz Ci, jak to działa. – user1279734
Witaj Davmos, ciągle otrzymuję clob zamiast i XMLTYPE, jak mogę uzyskać typ xml? – user1279734
Hi @ user1279734, powyższa funkcja może tylko zwrócić 'XMLTYPE'. Jak się nazywasz? – davmos