我在一个名为“ MyPackage”的Oracle软件包中有一个函数:

FUNCTION MyFunction(name IN VARCHAR2) RETURN MyTable%rowtype;

我正在尝试通过JDBC调用它。

CallableStatement cs = connection.prepareCall("{ ? = call MyPackage.MyFunction(?) }");`

cs.registerOutParameter(1, OracleTypes.OTHER);

cs.setString(2, "SomeString");

cs.executeQuery();

我懂了

Caused by: java.sql.SQLException: Invalid column type: 1111

我尝试使用OracleTypes.CURSOR和OracleTypes.REF,但是都遇到了问题。 我想知道是否需要沿这些行定义一个STRUCT或其他内容,但是由于返回值不是命名类型,我认为我不能使用它吗?

我也尝试过:

SimpleJdbcCall call = new SimpleJdbcCall(jdbcTemplate);

call.withCatalogName("MYPACKAGE")

.withFunctionName("MYFUNCTION");

SqlParameterSource paramMap = new MapSqlParameterSource()

.addValue("NAME", "SomeString");

Map map = call.execute(paramMap);

这还会产生Invalid column type 1111错误。 列元数据说该参数是OracleTypes.OTHER

我用来验证列元数据的代码是:

DatabaseMetaData dbMeta = connection.getMetaData();

ResultSet rs = dbMeta.getProcedureColumns(null, "MYSCHEMA", "%MY_FUNCTION%", "%");

while (rs.next()) {

String procedureName = rs.getString(3);

String columnName = rs.getString(4);

int dataType = rs.getInt(6);

System.out.println("Procedure Name: " + procedureName + ", Column Name: " + columnName + ", Data Type:" + dataType);

}

输出是:

Procedure Name: MYFUNCTION, Column Name: null, Data Type:1111

Procedure Name: MYFUNCTION, Column Name: NAME, Data Type:12

任何指导将不胜感激

oracle 异常返回值,oracle - java.sql.SQLException:无效的列类型:调用具有行类型返回值的函数时为1111 - 堆栈内存溢出...相关推荐

  1. oracle插入报错-Caused by: java.sql.SQLException: 无效的列类型: 16

    一.问题截图 如图我们用kettle将SqlServer数据抽取至oracle数据,因两边数据库的字段类型不一致,导致数据同步过去时报Caused by: java.sql.SQLException: ...

  2. 使用iBatis中报 java.sql.SQLException: 无效的列类型异常

    1. <!--Content表 插入应的记录到数据库中 --> 2. < insert id = "insertContent"   parameterClass ...

  3. 异常:java.sql.SQLException: 无效的列类型: 1111

    异常现象 最近项目中遇到的,项目框架用的SpringBoot,MyBatis做持久层,以下是出现的异常重现: 2020-06-28 22:23:21.373 [http-nio-8080-exec-1 ...

  4. mybatis报错:java.sql.SQLException: 无效的列类型: 1111

     java.sql.SQLException: 无效的列类型: 1111  at oracle.jdbc.driver.OracleStatement.getInternalType(Oracle ...

  5. java.sql.SQLException: 无效的列类型: 1111 (jdbcType相关)

    转自:http://blog.csdn.net/stronglyh/article/details/45369611 mybatis报错:java.sql.SQLException: 无效的列类型: ...

  6. java 调用存储过程 无效的列索引_JAVA 调用存储过程报错 java.sql.SQLException: 无效的列索引...

    报错信息java.sql.SQLException:无效的列索引atoracle.jdbc.driver.OracleCallableStatement.registerOutParameterInt ...

  7. java.sql.SQLException: 无效的列类型: 错误解析

    八月 16, 2018 8:47:40 下午 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service( ...

  8. java.sql.SQLException: 无效的列类型: 1111 报错问题解决

    在项目中利用Mybatis做持久化框架,XXXMapper.xml中insert语句做插入时,偶然会遇到一些报错或者说是问题,如下: 报错日志: nested exception is org.apa ...

  9. Cause: java.sql.SQLException: 无效的列类型: 1111解决

    在页面提交数据时,出现如下错误信息: Error setting null for parameter #7 with JdbcType OTHER . Try setting a different ...

最新文章

  1. 在活动目录中,转移和占用操作主机角色(占用)
  2. python基础学习笔记(六)
  3. SpringBoot中使用log4j进行日志管理
  4. commons-lang(time应用)
  5. 定时任务 - 定时任务弊端与优化方案
  6. HashMap的7种遍历方式
  7. C sharp实例:华盾武器门数据接收和解析
  8. 【51Nod - 1094】和为k的连续区间 (前缀和,二分查找)
  9. nginx备忘录,错误a duplicate default server for 0.0.0.0:80
  10. ECSHOP删除商品名称或文章标题后的省略号
  11. hibernate执行sql语句 查询 删除
  12. c# vs2019 AForge简单使用
  13. Stackelberg 博弈模型求解
  14. Tomcat 修改网站旁边的小图标
  15. C++ 使用Poco库实现XML的读取和写入
  16. 2022-2028全球与中国语音疏散系统市场现状及未来发展趋势
  17. HCIP-H12-223练习题
  18. 山东大学计算机学院 论坛,计算机学院承办计算机学科发展高峰论坛_山东大学...
  19. HTML、CSS、JS(JAVA Sprict)
  20. commons-codec使用简介

热门文章

  1. 发送广播BroadcastReceiver
  2. 关系数据库SQL之可编程性触发器
  3. jQuery基本过滤选择器
  4. BZOJ-1901 Zju2112 Dynamic Rankings 函数式线段树 套 树状数组+离线处理
  5. Dynamics CRM 依赖组件类型为应用程序功能区导致的无法删除实体问题的解决方法...
  6. 为什么要用非关系数据库?
  7. 2.42死锁的处理策略一预防死锁
  8. 数据结构——队列的C语言实现
  9. psycopg2.errors.UndefinedTable: relation “xxxx“ does not exist
  10. android getdecorview 出现空指针,android – 为什么我从TabWidget得到一个空指针异常?...