Ibatis中如何调用oracle存储的函数
如在oracle中有个package叫做PCK_VIEW,在PCK_VIEW里面有个F_GET_SITESNAPSHOT_TIME的函数有一个varchar2参数
-------------------------------------------
function F_GET_PARTNER_LIST(p_tmp varchar2)
return RecordSet
is
l_rs RecordSet;
begin
open l_rs for select partner from T_PARTNER order by UPPER(partner) asc;
return l_rs;
end F_GET_PARTNER_LIST;
-------------------------------------------
在ibatils里面配置调用是{ call PCK_VIEW.F_GET_SITESNAPSHOT_TIME(?) }
我确定参数都配置好了,但是调用的时候还是报错啊
-------------------------------------------
--- The error occurred in com/phoenixtv/stat/dao/ibatis/sql/realtime.xml. --- The error occurred while applying a parameter map. --- Check the stat.realtime.pm_in_getSiteSnapshotTime. --- Check the statement (update procedure failed). --- Cause: java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00221: 'F_GET_SITESNAPSHOT_TIME' is not a procedure or is undefined ORA-06550: line 1, column 7:
-------------------------------------------
怎么回事,明明数据库有这个函数啊?
但是我在jdbc中这段代码确可以调用
-------------------------------------------
Class.forName("oracle.jdbc.driver.OracleDriver");
conn =DriverManager.getConnection("jdbc:oracle:thin:@111.111.111.111:1521:stat","pass","pass");
//conn = DBConnection.ins.getConn("jdbc/StatDB");sdf.format(new Date())+1
//conn = DBConnection.ins.getConn("statistic");
cs = conn.prepareCall("{? = call PCK_VIEW.F_GET_SITESNAPSHOT_TIME(?)}");
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.setString(2,"");
cs.execute();
rs =(ResultSet) cs.getObject(1);
--------------------------------------------
分享到:
相关推荐
本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...
3. **存储过程调用**:Ibatis可以通过`<select>`、`<procedure>`元素调用Oracle的存储过程,增强业务逻辑的封装性。 4. **连接池管理**:Ibatis可以与各种连接池(如C3P0、Druid、HikariCP等)集成,提高数据库连接...
总结来说,"struts2+spring+ibatis+oracle整合的登陆系统"是一个综合性的Web应用示例,它展示了如何利用Struts2处理用户交互,Spring管理依赖和事务,iBatis执行数据库操作,以及Oracle存储数据。这样的整合方案为...
在这里,`empty_clob()`函数用于创建一个空的CLOB对象,然后通过`RETURNING`子句返回,以便于iBATIS能够填充到Java对象中。 3. **更新操作**:更新CLOB字段时,通常需要先获取原始的CLOB对象,然后用新的值覆盖。...
Oracle还提供了许多高级特性,如PL/SQL过程语言、触发器、存储过程和函数,以及分区表等,这些在复杂的业务场景中十分有用。 该实例可能包含以下内容: 1. 数据库连接配置:在Ibatis的配置文件中,会设置Oracle的...
例如,对于Oracle,可以调用序列函数获取新的主键值。 4. **存储过程** Ibatis 支持调用数据库的存储过程。通过 `<procedure>` 元素,可以定义存储过程的调用,并通过 `<parameterMap>` 定义输入输出参数。在存储...
### 访问存储过程(或函数)通过IBATIS中的Procedure标签定义Statement 在IBATIS框架中,访问数据库中的存储过程或者函数是一项常见的需求。本文将深入探讨如何利用IBATIS提供的`procedure`标签来定义这样的操作,...
在本文中,我们将探讨如何在Mybatis框架中调用PostgreSQL的存储过程,特别是处理 PostgreSQL 的数组类型作为存储过程的输入参数。Mybatis是一个流行的Java持久层框架,它允许开发者编写SQL语句,并与Java对象进行...
这个类可能包含了针对Oracle特定的SQL语法或特性,例如使用Oracle的PL/SQL存储过程,或者是利用Oracle的特定函数进行数据处理。 综上所述,掌握MyBatis的动态XML对于进行数据库操作至关重要,它极大地提高了SQL的...
8. **映射文件和 SQL 语句的通用性**:尽量编写通用的 SQL 映射文件,避免过于依赖特定数据库的功能,如存储过程、函数等。可以使用预编译的参数化 SQL(如 PreparedStatement)来减少 SQL 注入风险。 压缩包文件 ...
而在MySQL中,可以使用`LAST_INSERT_ID()`函数。 4. **主键获取策略**: - **先获取主键**:`<selectKey>`可以在插入语句之前配置,如Oracle的Sequence,需要在插入前确定主键值。 - **后获取主键**:对于自动...
4. Oracle数据库:理解Oracle的数据类型、表结构设计、索引、存储过程和函数的使用,以及SQL语句(DML、DDL、DQL、DCL)的编写和优化。 5. CRUD操作:学习如何通过Struts2和iBatis实现对Oracle数据库的增删改查操作...
首先,Oracle数据库是存储数据的仓库,如标题中提到的“XE”或“ORCL”,它们是全局数据库的实例。数据库内部通常包含多个表空间,表空间是由一个或多个数据文件(扩展名为.dbf)组成的,用于实际存储数据。 在...
12. **程序包(Package)**:在Oracle中,程序包由规范(Specification)和主体(Body)两部分组成,用于组织和封装相关的过程、函数和其他数据库对象。正确答案是AC。 13. **触发器(Trigger)**:触发器可以创建...
表空间是Oracle数据库中存储数据的主要单位,用于组织和管理数据库的物理存储。 在iBatis框架中,持久化对象之间一对一的关联关系是通过`<one-to-one>`元素定义的(A选项)。这允许我们在ORM(对象关系映射)中建立...
Oracle支持PL/SQL,这是一种嵌入在SQL中的过程式语言,用于编写存储过程、函数和触发器。 3. **Mybatis与Oracle整合**: - **驱动配置**:首先,你需要在项目的`pom.xml`或`build.gradle`文件中添加Oracle JDBC...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...