Java 尝试从Oracle数据库读取XML以创建MD5哈希

Java 尝试从Oracle数据库读取XML以创建MD5哈希,java,xml,oracle,jdbc,Java,Xml,Oracle,Jdbc,我有一个程序,试图从oracle表中检索不同的数据类型,并将行转换为MD5哈希 ByteArrayOutputStream SqlResultStrow=新建ByteArrayOutputStream() 从表中检索XML类型时,得到的是SYS.xmltype,而不是Types.SQLXML。它们之间的区别是什么?如何将SYS.xmltype转换为Byte[],以便将其写入bytearrayoutputstream以计算整行的哈希值。我是这样做的:- if(rsmd.getColumnType

我有一个程序,试图从oracle表中检索不同的数据类型,并将行转换为MD5哈希

ByteArrayOutputStream SqlResultStrow=新建ByteArrayOutputStream()

从表中检索XML类型时,得到的是SYS.xmltype,而不是Types.SQLXML。它们之间的区别是什么?如何将SYS.xmltype转换为Byte[],以便将其写入bytearrayoutputstream以计算整行的哈希值。

我是这样做的:-

 if(rsmd.getColumnTypeName(col).equals("SYS.XMLTYPE")){
            OracleResultSet orset = (OracleResultSet) rs;
            if(orset.getOPAQUE(col) != null) {
            XMLType poxml = XMLType.createXML(orset.getOPAQUE(col));
            sqlResultSetRow.write(poxml.getStringVal().getBytes("UTF-8"));
            }
          }

这不是问题的答案,但您可以使用
dbms\u obfuscation\u toolkit.MD5
生成haskey Hi user,您的数据库代码或MD5代码有问题吗?我认为他对数据库代码有问题,比如如何将XML作为字节来计算MD5。如果可以处理CLOB值,那么为什么不选择XMLtype作为CLOB呢?(请尝试getCLOBVal())
 if(rsmd.getColumnTypeName(col).equals("SYS.XMLTYPE")){
            OracleResultSet orset = (OracleResultSet) rs;
            if(orset.getOPAQUE(col) != null) {
            XMLType poxml = XMLType.createXML(orset.getOPAQUE(col));
            sqlResultSetRow.write(poxml.getStringVal().getBytes("UTF-8"));
            }
          }