J'ai une table qui a un champ XMLType. La table est créée et chargée à l'aide de la DDL suivante/DML:Sélectionnez des valeurs distinctes sur XMLType
CREATE TABLE T_ECO_test_LOG
(
SECID NUMBER NOT NULL,
LOG_ATTRIBUTES SYS.XMLTYPE
)
INSERT INTO t_eco_test_log VALUES
( 1, XMLType(
'<attributes>
<attribute>
<name>remoteAddress</name>
<value>180.201.106.130</value>
</attribute>
<attribute>
<name>domain</name>
<value>BSI_US</value>
</attribute>
</attributes>'));
INSERT INTO t_eco_test_log VALUES
( 2, XMLType(
'<attributes>
<attribute>
<name>user</name>
<value>xxxx</value>
</attribute>
<attribute>
<name>domain</name>
<value>BSI_US</value>
</attribute>
</attributes>'));
Je veux obtenir les différentes valeurs/attributs/attribut/nom, en lignes; Donc, avec des données O voudraient obtenir:
remoteAddress
domain
user
Jusqu'à présent, je l'ai essayé la requête suivante:
select extractValue(value(x),'/attributes/attribute/name')
from t_eco_log,
table(xmlsequence(extract(log_attributes,'/attributes')))x
Mais je reçois le message suivant:
ORA-19025: retourne ExtractValue la valeur d'un seul nœud
Si je
select extract(value(x),'/attributes/attribute/name')
from t_eco_log,
table(xmlsequence(extract(log_attributes,'/attributes')))x
J'ai obtenu un résultat XML qui contient:
<name>remoteAddress</name><name>domain</name>
Mais je voudrais les obtenir sous forme de lignes, comment puis-je faire?
TIA
J'ai édité la question pour la clarifier, en donnant un exemple de la table et des données, et ce que je veux obtenir. Merci de votre aide! –