Oracle Tibco SQL直接查询:报告了JDBC错误:(SQLState=)-“;这不是有效的SQL类型:2009

Oracle Tibco SQL直接查询:报告了JDBC错误:(SQLState=)-“;这不是有效的SQL类型:2009,oracle,jdbc,xmltype,tibco-business-works,Oracle,Jdbc,Xmltype,Tibco Business Works,我使用的是Tibco BW 5.14和Oracle 19c 我有一个包含XMLType列的Oracle表。我使用本机oracle jdbc驱动程序12.1.0.2.0进行数据库连接 当我运行查询时 Select XMLTYPE_column from table 作为SQL direct活动获取错误 <?xml version = "1.0" encoding = "UTF-8"?> <ns0:ErrorReport xmlns:ns

我使用的是Tibco BW 5.14和Oracle 19c 我有一个包含XMLType列的Oracle表。我使用本机oracle jdbc驱动程序12.1.0.2.0进行数据库连接

当我运行查询时

Select XMLTYPE_column from table 
作为SQL direct活动获取错误

<?xml version = "1.0" encoding = "UTF-8"?>
<ns0:ErrorReport xmlns:ns0 = "http://www.tibco.com/pe/EngineTypes">
    <StackTrace>Job-7000 Error in [Processes/metrics_PROD.process/SQL Direct]
"JDBC error reported: (SQLState = ) - "This is not a valid SQL type: 2009""
    at com.tibco.plugin.jdbc.JDBCActivity.eval(Unknown Source)
    at com.tibco.pe.plugin.Activity.eval(Unknown Source)
    at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
    at com.tibco.pe.core.Job.a(Unknown Source)
    at com.tibco.pe.core.Job.k(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
caused by: "This is not a valid SQL type: 2009"
    at com.tibco.plugin.jdbc.JDBCCommon.sqlTypeToSmType(Unknown Source)
    at com.tibco.plugin.jdbc.JDBCCommon.sqlTypeToSmType(Unknown Source)
    at com.tibco.plugin.jdbc.JDBCGeneralActivity.evalGeneralStatement(Unknown Source)
    at com.tibco.plugin.jdbc.JDBCGeneralActivity.performDatabaseOperation(Unknown Source)
    at com.tibco.plugin.jdbc.JDBCActivity.eval(Unknown Source)
    at com.tibco.pe.plugin.Activity.eval(Unknown Source)
    at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
    at com.tibco.pe.core.Job.a(Unknown Source)
    at com.tibco.pe.core.Job.k(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
    </StackTrace>
    <Msg>"JDBC error reported: (SQLState = ) - "This is not a valid SQL type: 2009""</Msg>
    <FullClass>com.tibco.plugin.jdbc.JDBCSQLException</FullClass>
    <Class>JDBCSQLException</Class>
    <ProcessStack>Processes/metrics_PROD.process/SQL Direct</ProcessStack>
    <MsgCode>BW-JDBC-100004</MsgCode>
    <Data>
        <ns1:JDBCSQLException xmlns:ns1 = "http://schemas.tibco.com/bw/plugins/jdbc/5.0/jdbcExceptions">
            <msg>"JDBC error reported: (SQLState = ) - "This is not a valid SQL type: 2009""</msg>
            <msgCode>BW-JDBC-100004</msgCode>
            <sqlState/>
            <detailStr>"This is not a valid SQL type: 2009"</detailStr>
        </ns1:JDBCSQLException>
    </Data>
</ns0:ErrorReport>

[processs/metrics\u PROD.process/SQL Direct]中的Job-7000错误
“报告的JDBC错误:(SQLState=)-“这不是有效的SQL类型:2009”
位于com.tibco.plugin.jdbc.jdbactivity.eval(未知源)
位于com.tibco.pe.plugin.Activity.eval(未知来源)
位于com.tibco.pe.core.TaskImpl.eval(未知来源)
在com.tibco.pe.core.Job.a(未知来源)
在com.tibco.pe.core.Job.k(未知来源)
在com.tibco.pe.core.JobDispatcher$JobCourier.a(未知来源)
在com.tibco.pe.core.JobDispatcher$JobCourier.run(未知源)
原因:“这不是有效的SQL类型:2009”
位于com.tibco.plugin.jdbc.jdbcommon.sqlTypeToSmType(未知源)
位于com.tibco.plugin.jdbc.jdbcommon.sqlTypeToSmType(未知源)
位于com.tibco.plugin.jdbc.JDBCGeneralActivity.evalGeneralStatement(未知源)
位于com.tibco.plugin.jdbc.JDBCGeneralActivity.performDatabaseOperation(未知源)
位于com.tibco.plugin.jdbc.jdbactivity.eval(未知源)
位于com.tibco.pe.plugin.Activity.eval(未知来源)
位于com.tibco.pe.core.TaskImpl.eval(未知来源)
在com.tibco.pe.core.Job.a(未知来源)
在com.tibco.pe.core.Job.k(未知来源)
在com.tibco.pe.core.JobDispatcher$JobCourier.a(未知来源)
在com.tibco.pe.core.JobDispatcher$JobCourier.run(未知源)
“报告的JDBC错误:(SQLState=)-“这不是有效的SQL类型:2009”
com.tibco.plugin.jdbc.JDBCSQLException
JDBCSQLException
流程/指标\u PROD.process/SQL Direct
BW-JDBC-100004
“报告的JDBC错误:(SQLState=)-“这不是有效的SQL类型:2009”
BW-JDBC-100004
“这不是有效的SQL类型:2009”
也不适用于Tibco oracle驱动程序

    <StackTrace>Job-48000 Error in [Processes/Process Definition.process/JDBC Query]
"JDBC error reported: (SQLState = HY000) - java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver][Oracle]ORA-22275: invalid LOB locator specified
"
    at com.tibco.plugin.jdbc.JDBCActivity.eval(Unknown Source)
    at com.tibco.pe.plugin.Activity.eval(Unknown Source)
    at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
    at com.tibco.pe.core.Job.a(Unknown Source)
    at com.tibco.pe.core.Job.k(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
    at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
caused by: java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver][Oracle]ORA-22275: invalid LOB locator specified
[processs/Process Definition.Process/JDBC Query]中的Job-48000错误 “报告的JDBC错误:(SQLState=HY000)-java.sql.SQLException:[tibcosoftwareinc][Oracle JDBC驱动程序][Oracle]ORA-22275:指定的LOB定位器无效 " 位于com.tibco.plugin.jdbc.jdbactivity.eval(未知源) 位于com.tibco.pe.plugin.Activity.eval(未知来源) 位于com.tibco.pe.core.TaskImpl.eval(未知来源) 在com.tibco.pe.core.Job.a(未知来源) 在com.tibco.pe.core.Job.k(未知来源) 在com.tibco.pe.core.JobDispatcher$JobCourier.a(未知来源) 在com.tibco.pe.core.JobDispatcher$JobCourier.run(未知源) 原因:java.sql.SQLException:[tibcosoftwareinc][Oracle JDBC驱动程序][Oracle]ORA-22275:指定的LOB定位器无效
我使用中提供的解决方案解决了问题

将查询替换为

Select EXTRACT(XMLTYPE_column,'.').getClobVal()  from table

请注意,CLOB tibco类型可用于使用XMLType(?)插入XML_类型列

范例

insert into EXAMPLE_TABLE (ID, XMLTYPE_COLUMN)
values (?, XMLType(?))