如果有一个TYPE:
CREATE OR REPLACE type EMP_TYPE AS object
(
id NUMBER ,
name VARCHAR2 ,
birthday DATE ,
sex CHAR (1)
);
有一个Pacakge:
CREATE OR REPLACE PACKAGE EMP_UTIL IS
FUNCTION get_emp_by_id (p_id NUMBER) RETURN EMP_TYPE;
PROCEDURE create_emp (p_emp EMP_TYPE);
END EMP_UTIL;
现在如果需要用JDBC调用这个Package的这两个功能。
1. 下载JPublisher。
2. 设置CLASSPATH。
set CLASSPATH=%CLASSPATH%;%JPUB_HOME%\sqlj\lib\translator.jar
set CLASSPATH=%CLASSPATH%;%JPUB_HOME%\sqlj\lib\runtime12.jar
set CLASSPATH=%CLASSPATH%;%JPUB_HOME%\sqlj\lib\jpub.jar
set CLASSPATH=%CLASSPATH%;%ORACLE_HOME%\jdbc\lib\classes12.jar
3. 执行命令: jpub -user=user/pwd@SID -s EMP_UTIL
4. 会生成两个个类:EmpType, EmpTypeRef, 将这两个类拷贝到工作目录下。
5. 新建一个java类来调用这两个功能,代码如下:
public class Sample
{
Map getTypeMap()
{
Map map = new HashMap();
map.put("EMP_TYPE", EmpType.class);
return map;
}
public EmpType getEmpById(long id)
{
Connection conn = null;
CallableStatement cstmt = null;
try
{
conn = getConnection();
conn.setTypeMap(getTypeMap());
cstmt = conn.prepareCall("{? = call emp_util.get_emp_by_id(?)}");
cstmt.registerOutParameter(1, Types.STRUCT, "EMP_TYPE");
cstmt.setLong(2, id);
cstmt.execute();
return (EmpType) cstmt.getObject(1);
}
catch (Exception e)
{
return null;
}
finally
{
cstmt.close();
conn.close();
}
}
public void createEmp(EmpType emp)
{
Connection conn = null;
CallableStatement cstmt = null;
try
{
conn = getConnection();
conn.setTypeMap(getTypeMap());
cstmt = conn.prepareCall("{call emp_util.create_emp(?)}");
cstmt.setObject(1, emp, Types.STRUCT);
cstmt.execute();
}
catch (Exception e)
{
}
finally
{
}
}
}
分享到:
相关推荐
在PLSQL中,你可以创建存储过程和函数,这些是可重复使用的代码块,可以提高效率并减少数据访问的复杂性。存储过程可以有输入和输出参数,甚至可以返回值。函数则更像数学函数,接收参数并返回单一结果。 此外,...
oracle plsql 代码入门到精通实例演示讲解,plsql编程入门教程
PLSql 很好的一个控制数据库工具(ORACLE)
Oracle PL/SQL是一种在Oracle数据库中编写存储过程和函数的语言,它结合了SQL的数据库操作能力和PL/SQL的编程灵活性。在本示例中,我们将深入探讨如何利用UTL_HTTP包来调用Web Service,这是一个非常实用的功能,...
通过《Oracle PLSQL详解 宝典》,你不仅可以学习到PL/SQL的理论知识,还能通过实例和实践加深理解,提升编写高效、易维护的代码的能力。无论你是初学者还是经验丰富的开发者,这本书都将是你掌握Oracle数据库编程不...
通过深入理解和熟练使用Oracle PL/SQL及PL/SQL Developer,数据库管理员和开发人员能够构建健壮、高效的应用系统,实现对Oracle数据库的高效管理和维护。掌握这些知识将极大地提高你在IT领域的专业能力,尤其是在...
标题中的“不安装oracle使用plsql”意味着要在没有Oracle数据库客户端的情况下使用PL/SQL Developer这一工具。这通常通过Oracle的Instant Client实现,该组件提供了一种轻量级的解决方案,允许用户连接到Oracle...
Oracle PLSQL,全称为Oracle Procedural Language/Structured Query Language,是Oracle数据库系统中的一个编程组件,用于扩展SQL的功能,实现更复杂的业务逻辑。它结合了SQL的查询能力与过程式编程语言的特点,使得...
读者循序渐进地学习每个关键任务,自己就能掌握当今最有价值的Oracle12c的PL/SQL编程技术。本书的方法完全反映了作者在哥伦比亚大学给专业人员讲授PL/SQL的广受好评的经验。数据库开发的新手和DBA可以通过学习本书...
用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用 CallableStatement 来调用。 2. 有...
Oracle PLSQL编程是数据库开发领域中的重要组成部分,尤其在企业级应用系统中广泛使用。第四版的《Oracle PLSQL编程》旨在深入解析Oracle数据库的PL/SQL编程语言,帮助开发者提升技能,掌握高效、稳定和安全的数据库...
ORACLE PLSQL实例精解(第4版).part2
《Oracle PLSQL Programming 6th Edition》是一本深入讲解Oracle数据库中的PL/SQL编程语言的权威著作。PL/SQL是Oracle数据库系统中的过程式语言,它结合了SQL的查询功能和传统的编程语言特性,用于创建复杂的数据库...
PL/SQL代码使用ASCII文本编辑器编写,适应性强,可以在任何Oracle支持的操作系统上使用。与SQL不同,PL/SQL以块的形式发送到服务器,减少了网络通信的负担,提高了效率。 PL/SQL的结构分为声明、执行和异常处理三个...
Oracle PL/SQL是一种在Oracle数据库环境中使用的结构化查询语言(SQL)的扩展,它结合了SQL的查询功能和过程式编程语言的控制结构。在Oracle PL/SQL中,你可以编写存储过程、函数、触发器、游标等,以实现复杂的业务...
Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具...
在Oracle数据库中,使用PL/SQL进行数据库编程前,首先需掌握如何创建表与进行基本的CRUD(创建、读取、更新、删除)操作。示例中的`CREATE TABLE`语句用于创建一个名为`mytest`的表,包含`name`和`password`两个字段...
PLSQL jdbc调用存储过程(入门)
PLSQL数据库编程 存储过程 游标 等等
Oracle PLSQL实例精解