Hallo Leute,
ich habe eine Datenbanktabelle erstellt:
das in der Spalte "Configuration" hinterlegtes XML sieht so aus:
Nun möchte ich mittels der SQL-XML-Funktion das in der Spalte "Configuration" hinterlegtes XML mithilfe der XML-Table-Funktion transformieren:
Bekomme ich nicht die Tabelle als Ausgabe, sondern das hier:
"com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db "
ich habe eine Datenbanktabelle erstellt:
Java:
CREATE TABLE "MGMT"."SYSTEM"
( "SYSTEM_ID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE CACHE 20),
"NAME" VARCHAR(300) NOT NULL,
"SERVICE" VARCHAR(200) NOT NULL,
"VERSION" VARCHAR(150) NOT NULL,
"CONFIGURATION" XML NOT NULL
)
das in der Spalte "Configuration" hinterlegtes XML sieht so aus:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<system xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="SystemConfiguration.xsd"
xsi:schemaLocation="http://www.w3.org/XML/1998/namespace ../xinclude/xml.xsd [url=http://www.w3.org/2001/XInclude]XInclude[/url] ../xinclude/xinclude.xsd ">
<components>
<component>
<name>FileNet</name>
<version>5.2.1.0</version>
<buildNumber>dap521.000.024</buildNumber>
</component>
<component>
<name>CSS</name>
<version>IQQD0055E The search server is stopped. It must be started for the tool to run.</version>
</component>
<component>
<name>CSS</name>
<version>2.1.0.0-1.1-4147.</version>
<fixpack>FP5</fixpack>
</component>
<component>
<name>TDS</name>
<version>6.3.1.0</version>
</component>
<component>
<name>ICN</name>
<version>2.0.2</version>
</component>
<component>
<name>CMIS</name>
<version>IBM Content Management Interoperability Services for FileNet Content Manager (IBM CMIS) Version 2.0.2.3</version>
</component>
<component>
<name>DB2</name>
<version>DB2 v10.1.0.2</version>
</component>
<component>
<name>WAS</name>
<version>8.5.5.1</version>
</component>
</components>
</system>
Nun möchte ich mittels der SQL-XML-Funktion das in der Spalte "Configuration" hinterlegtes XML mithilfe der XML-Table-Funktion transformieren:
Java:
try {
connection = DriverManager.getConnection(url, user, password);
selectKunden = connection
.prepareStatement("SELECT X.NAME, X.VERSION, X.FIXPACK, X.BUILDNUMBER FROM MGMT.SYSTEM, XMLTABLE('$CONFIGURATION/system/components/component' COLUMNS NAME VARCHAR(30) PATH 'name', VERSION VARCHAR(120) PATH 'version', FIXPACK VARCHAR(30) PATH 'fixpack', BUILDNUMBER VARCHAR(20) PATH 'buildNumber') AS X WHERE MGMT.SYSTEM.SYSTEM_ID = ?");
selectKunden.setInt(1, zahl);
} catch (SQLException e) {
e.printStackTrace();
}
try {
resultSet = selectKunden.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
%>
<%
while (resultSet.next()){
%>
<%=resultSet %>
<%
}
%>
</body>
</html>
Bekomme ich nicht die Tabelle als Ausgabe, sondern das hier:
"com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db com.ibm.db2.jcc.t4.i@a4f686db "
Zuletzt bearbeitet: