Java Spring SimpleJDBCall如何在存储过程调用中为oracle结构指定模式
我试图调用默认架构下不存在的存储过程。该过程将oracle结构作为参数。过程和oracle结构都位于同一架构下:OTHERSCHEMA 这是我的密码:Java Spring SimpleJDBCall如何在存储过程调用中为oracle结构指定模式,java,database,spring,oracle,Java,Database,Spring,Oracle,我试图调用默认架构下不存在的存储过程。该过程将oracle结构作为参数。过程和oracle结构都位于同一架构下:OTHERSCHEMA 这是我的密码: SimpleJdbcCall createMyCall = new SimpleJdbcCall(dataSource) .withSchemaName("OTHERSCHEMA") .withProcedureName("PROC_THEPROC") .declareParameters(new SqlParameter("Para
SimpleJdbcCall createMyCall = new SimpleJdbcCall(dataSource)
.withSchemaName("OTHERSCHEMA")
.withProcedureName("PROC_THEPROC")
.declareParameters(new SqlParameter("Param_in", OracleTypes.STRUCT, "OTHERSCHEMA.MYTYPE"),
new SqlOutParameter(Param_out, OracleTypes.NUMBER),
new SqlOutParameter(ErrorCode_out, OracleTypes.NUMBER));
Map in = Collections.singletonMap("Data_in", myData);
createMyCall.execute(in);
当我执行此代码时,我得到一个错误:
org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback;
uncategorized SQLException for SQL [{call OTHERSCHEMA.PROC_THEPROC(?, ?, ?)}]; SQL state
[99999]; error code [17074]; invalid name pattern: MYSCHEMA.MYTYPE; nested exception is
java.sql.SQLException: invalid name pattern: MYSCHEMA.MYTYPE
为什么OTHERSCHEMA.MYTYPE被替换为我的默认模式MYSCHEMA?如能提供一些见解,将不胜感激
更新:
我解决了我的问题。“myData”有一个方法getSQLTypeName(),该方法返回MYSCHEMA.MYTYPE。显然,这将永远
重写传入SimpleJDBCall的内容。Doh 你找到解决办法了吗?