java - 从 storedFunction 传递 Char 时的 Oracle-17132
问题描述
我的 StoredFunction 遇到问题。它看起来微不足道,但我没有看到解决它的方法。
Oracle DB 包含一个具有以下签名和一些简单主体的函数
FUNCTION MY_FUNC (CARD_NUM_IN in char, CARD_ID number default null)
return number;
我执行对函数的调用如下:
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(dataSource);
SqlParameterSource sps = new MapSqlParameterSource()
.addValue("CARD_NUM_IN", ' ', OracleTypes.CHAR)
.addValue("CARD_ID", Long.parseLong(cardId), OracleTypes.NUMBER);
simpleJdbcCall
.withFunctionName("MY_FUNC")
.withCatalogName(PACKAGE_NAME);
Object result = simpleJdbcCall.executeFunction(Object.class, sps);
结果是:
java.sql.SQLException: ORA-17132 Invalid conversion requested
如果我从函数中删除 Char 参数并停止传递它,则存储的函数将按预期工作。
我应该如何传递一个 Char(函数签名更改是不可能的)?
解决方案
推荐阅读
- react-native - 尝试查找其长度时字符串未定义
- scala - 如何聚合火花数据框中两列的值
- python - 打印块形成一个列表
- angular6 - 依赖下拉功能 ng2-smart-table
- angular - Angular中的字符串替换
- javascript - jQuery如何只声明一次选择器函数?
- android - 为什么我完成 Activity 后没有关闭 TYPE_APPLICATION_OVERLAY 的窗口?
- r - 绘制具有置信区间的长期均值
- c# - HTTP_X_FORWARDED_FOR 在移动网络上不起作用。有什么解决办法吗?用于根据 IP 获取城市名称
- php - PHP:我从带有双引号的 CSV 文件中得到奇怪的输出,例如 \x00P\x00h\x00o\x00n