我在调用返回 OracleTypes.ARRAY 作为输出参数的存储过程时遇到了 Groovy SQL 的问题。
Java代码(工作正常):
callableStatement.registerOutParameter(37, OracleTypes.ARRAY, DEVICE_RAW_DATA_ARRAY);
OracleTypes.ARRAY registerOutParameter 是在 JDBC(callableStatement) 中配置的,它工作正常。从 Groovy SQL 调用相同的存储过程时,我得到以下异常“java.sql.SQLException:ORA-03115:不支持的网络数据类型或表示”
常规代码:
import groovy.sql.Sql
def sqlStr = "{call prometheus.PKG_Device_FP_TLDID.SP_Save_Device_FP_Get_TLDID(?,?,?,?,?,?)}"
def params = [ ID_IN,
Request_ID_IN,
Session_ID_IN,
Sql.NUMERIC,
Sql.VARCHAR,
Sql.ARRAY // ARRAY Type output parameter -- Here I am getting Exception "java.sql.SQLException: ORA-03115: unsupported network datatype or representation" //
]
我尝试了不同的数据类型,例如 Sql.ARRAY // OracleTypes.ARRAY // Sql.OracleTypes.ARRAY 和其他类型。
您能否建议我使用 Groovy SQL 中的 OracleTypes.ARRAY 的等效数据类型。
谢谢 !!