java - 如何从 Java 程序中调用 Oracle 函数
问题描述
如何从 Java 程序调用 Oracle 函数...
我正在尝试访问我的数据库中的一个函数,但我无法做到。我这样做的方式与访问 oracle 存储过程的方式相同。
String packageCallStmt = "{? = call XTRA_TSF_CRE_SQL.XTRA_TSF_CRE(?, ?, ?, ?, ?) }";
try{
conn = jdbcTemplate.getDataSource().getConnection();
System.out.println("Inside TransferCreationDAO - Before function call");
OracleCallableStatement oracleCallableStmt = (OracleCallableStatement) conn.prepareCall(packageCallStmt);
oracleCallableStmt.setInt(2, src_id);
oracleCallableStmt.setInt(3, dest_id);
oracleCallableStmt.setString(4, refNo);
oracleCallableStmt.setString(5, item);
oracleCallableStmt.setInt(6, qty);
oracleCallableStmt.registerOutParameter(1, OracleTypes.VARCHAR);
oracleCallableStmt.executeUpdate();
System.out.println("Inside TransferCreationDAO - After function call");
tcr.setTsf_No(((OracleCallableStatement) oracleCallableStmt).getString(1));
System.out.println("Inside TransferCreationDAO - Tsf Number:"+tcr.getTsf_No());
}
解决方案
- 确保您的 XTRA_TSF_CRE_SQL 架构的函数名称为 XTRA_TSF_CRE_SQL。
- 您是用户(由 java 程序使用)是否有权访问此功能。
- 如果您有一个与架构同名的对象,您可能会收到该错误。
也许它会解决你的问题。
推荐阅读
- python - 根据另一个列条件将列表替换为数据框中的另一个列表
- python - 当我的函数 A 只需要在 B 中运行时,如何将它作为函数 B 的参数?(Python)
- android - 为什么我的应用程序的某些部分在一个上下文中工作而在另一个上下文中不工作?
- c# - 创建正则表达式以删除除换行符以外的连续空格
- apache-flink - 如何使用 Flink SQL 按事件时间对流进行排序
- android - 在颤振应用程序的android本机模块中使用mapbox导航api时资源链接失败
- php - 如何对 PHP 生成的 HTML 表的每个字段执行计算?
- java - 如何修复此 Java 代码以使其不仅适用于 A 的所有等级?
- jakarta-ee - 在任何地方都找不到 JSTL 1.2 官方规范的链接
- angular - 如何在 ng-select 中的 Observable 类型的数组中插入值