Leere Spalten ausgeben mit dbms_xmlquery

karstenkurt

Mitglied
Hallo,

Frage: Wie kann man leere Spalten mittels dbms_xmlquery ausgeben lassen? Aktuell werden die nicht wie erwartet dargestellt.
Code:
   queryCtx := dbms_xmlquery.newContext('select bla,blub from anything');
   dbms_xmlquery.setRowTag(queryCtx, 'Test');
    DBMS_XMLQUERY.setrowidattrname(queryCtx, NULL);
    dbms_xmlquery.setRowSetTag(queryCtx, 'TestSet);
    result := dbms_xmlquery.getXml(queryCtx);
    dbms_xmlquery.closeContext(queryCtx);

daraus wird aktuell erzeugt
Code:
<?xml version="1.0"?>
<TESTSET>
	<TEST>
		<BLA>bla</BLA>
		<BLUB>BLUB</BLUB>
	</TEST>
</TESTSET>
Das funktioniert soweit ganz gut, solange beide Felder gefüllt sind. Ist nun das Feld Blub leer, dann wird nur noch
Code:
<?xml version="1.0"?>
<TESTSET>
	<TEST>
		<BLA>bla</BLA>
	</TEST>
</TESTSET>
ausgegeben. Ich möchte aber gerne
Code:
<?xml version="1.0"?>
<TESTSET>
	<TEST>
		<BLA>bla</BLA>
		<BLUB/>
	</TEST>
</TESTSET>
ausgegeben. Irgendwer eine Ieee?

Gruß
KK
 
Hallo,

ich habe zwar (noch) keine Ahnung von xmlquery, aber ich würde es mal im Select mit

select bla,NVL(blub, 'xx') from anything

probieren.

mfg
 
Hallo,

ich habe zwar (noch) keine Ahnung von xmlquery, aber ich würde es mal im Select mit

select bla,NVL(blub, 'xx') from anything

probieren.

mfg
Darum ja, erst probieren. Geht nicht!

weder

queryCtx := dbms_xmlquery.newContext('select bla,nvl(blub,''0'') from anything');
liefert
<?xml version="1.0"?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: Zeichen ')' ist in einem XML-Tag-Namen nicht zulässig.</ERROR>
noch
queryCtx := dbms_xmlquery.newContext(' bla,nvl(blub,''''0'''') from anything');
liefet
<?xml version="1.0"?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-00907: Rechte Klammer fehlt
</ERROR>
Soory.
 
Zurück