先建一张表
-- Create table
create table SIMPLE_TABLE
(
F1 NUMBER
)
创建一个包头
create or replace package glq_test as
procedure example(p_val in number);
end glq_test;
创建一个包体
create or replace package body glq_test as
procedure example(p_val in number) is
begin
insert into simple_table values (p_val);
end example;
end glq_test;
调用sql: call glq_test.example(5);
--复杂一点的包和包体,可以用java调用,可以传入参数和游标.
1.
create or replace package glq_test as
TYPE cursor_type IS REF CURSOR;
--定义要传入的游标
procedure security_info_data(p_sec_long_id IN SECURITY_INFO.SEC_LONG_ID%TYPE,
rc OUT cursor_type);
end glq_test;
2.
create or replace package body glq_test as
procedure security_info_data(p_sec_long_id IN SECURITY_INFO.SEC_LONG_ID%TYPE,
rc OUT cursor_type) is
begin
--最简单的给游标一些值
open rc for 'select * from trad_stat_1_dl d where d.sec_long_id=' || p_sec_long_id;
end security_info_data;
end glq_test;
3.怎么样在java中调用。
public String[][] getDBByPackage(String long_id) throws APCException,
Exception {
Connection conn = null;
ResultSet rs = null;
CallableStatement stmt = null;
String[][] dbData = null;
try {
conn = ConnectionPoolHandler.getHandler().getConnection();
// 调用ORACLE包
stmt = conn.prepareCall("{call glq_test.security_info_data(?,?)}");
// 注册输出参数
stmt.setString(1, long_id);
stmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
stmt.executeQuery();
rs = (ResultSet) stmt.getObject(2);
if (rs != null) {
Vector<String[]> v = new Vector<String[]>();
int fieldCount = rs.getMetaData().getColumnCount();
String[] value = new String[fieldCount];
for (int j = 1; j <= fieldCount; j++) {
String name = rs.getMetaData().getColumnName(j);
value[j - 1] = name;
}
v.add(value);
while (rs.next()) {
value = new String[fieldCount];
for (int n = 0; n < fieldCount; n++) {
value[n] = rs.getString(n + 1);
}
v.add(value);
}
dbData = new String[v.size()][fieldCount];
for (int i = 0; i < v.size(); i++) {
dbData[i] = v.get(i);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new BUSSException(e.getMessage());
} finally {
AccessCommonUtils.closeAll(conn, rs, stmt);
}
return dbData;
}
分享到:
相关推荐
本资料《Oracle PLSQL 从入门到精通》将引领读者深入理解这一强大的工具。 首先,入门阶段,你需要了解PLSQL的基本结构,包括声明部分(DECLARATION)、执行部分(EXECUTION)和异常处理部分(EXCEPTION)。声明...
首先,安装Oracle数据库服务器端和客户端是入门的第一步。在安装过程中,选择一个不含中文字符和空格的目录是非常重要的,因为这些特殊字符可能会导致后续的操作出现问题。安装完成后,记得记录下安装过程中提示的...
本入门教程旨在帮助初学者快速理解并掌握Oracle PL/SQL的基础知识,通过丰富的实例来解析其核心概念。 一、PL/SQL简介 PL/SQL是Oracle数据库提供的过程化语言,它允许开发者编写包含SQL语句的程序块,用于执行复杂...
本教程《Oracle 11g SQL和PL/SQL从入门到精通》旨在帮助初学者快速掌握这两项核心技术。 1. **Oracle 11g基础知识**:了解Oracle 11g的系统架构,包括服务器进程、内存结构(如SGA和PGA)、数据文件、控制文件、...
在这个"Oracle PL/SQL入门之案例实践"中,我们可以通过一系列的操作来学习和理解PL/SQL的基础知识。 首先,案例要求创建两个表:`emp`和`dept`。`emp`表用于存储员工信息,包含员工ID(emp_id)、姓名(emp_name)...
### Oracle11g存储过程入门实例解析 #### 一、背景介绍 在Oracle数据库系统中,存储过程是一种数据库对象,可以在数据库服务器上执行SQL语句和PL/SQL代码。存储过程能够提高应用程序性能,增强安全性,并减少网络...
在文档《ODI应用指南》中,作者黄建华详细阐述了Oracle Data Integrator的入门知识,介绍了ODI的基础知识、安装步骤、界面组件以及如何创建和执行数据集成项目。这些内容不仅包括了ODI的操作基础,还涵盖了从简单的...
本章视频教程主要涵盖了Oracle 11g在实际应用中的关键方面,旨在帮助初学者从入门到精通。 首先,视频教程的第一部分是“待遇管理模块设计”。这一章节将深入讲解如何在Oracle 11g环境中构建一个待遇管理模块,这...
Oracle9i入门教程是为初学者设计的一份全面指南,旨在帮助用户理解并掌握Oracle数据库的基础操作和管理。 **一、Oracle数据库基础** Oracle9i的基础概念包括:数据库、表空间、数据块、段、表、索引、视图等。...
以下是对"Oracle数据库入门"这一主题的详细讲解。 一、Oracle数据库简介 Oracle数据库系统是一种支持分布式计算的大型数据库管理系统,提供数据存储、管理、查询和分析等多种功能。它采用SQL(结构化查询语言)作为...
在Oracle9i中,可以利用PL/SQL进行简单的面向对象编程,包括对象类型、对象变量、对象方法和继承等概念。 通过学习“Oracle9i PL/SQL从入门到精通”,读者不仅可以掌握PL/SQL的基本语法和编程技巧,还能深入理解...
Oracle基础入门是数据库管理和开发初学者的指南,涵盖了Oracle数据库的基本操作和PL/SQL编程。以下是对这些主题的详细说明: 一、相关知识 1.1 关系型数据库(目前主流) 关系型数据库是最常见的数据库类型,以...
Oracle 9i Java 帮助文档是一套全面的指南,专为在Oracle数据库环境中进行Java编程的开发者设计。这套文档包含了丰富的信息,包括各种方法、类的使用方式以及API的详细说明。虽然文档是英文版,但它简洁明了,适合...
通过阅读“Oracle9i PLSQL 入门到精通”这本书,读者可以系统地学习如何使用PLSQL进行数据库编程,从简单的数据操作到复杂的业务逻辑实现,逐步提升为数据库专家。书中的实例和实践项目将帮助读者巩固理论知识,提高...
9. **包(Package)**:包是一种组织PL/SQL对象(如过程、函数、变量)的方式,可以提高代码的封装性和可维护性。 10. **记录类型(Record Types)**:自定义记录类型允许你创建类似于数据库表结构的变量,这对于...
Oracle数据库提供了丰富的数据定义语言(DDL),如`CREATE DATABASE`用于创建数据库,`CREATE USER`分配权限,`CREATE TABLE`构建表,`CREATE VIEW`建立视图,`CREATE INDEX`创建索引,以及`CREATE PROCEDURE`、`...
这本书"Oracle 11g SQL PL SQL 从入门到精通 全本"应该是涵盖了这两个领域的全面知识,帮助初学者到进阶者逐步掌握在Oracle 11g环境中使用SQL和PL/SQL进行数据操作与应用开发。 首先,对于SQL,你需要了解以下几个...
Oracle Database 10g PL/SQL入门教程是针对初学者设计的一份教程,旨在帮助读者掌握Oracle数据库系统中PL/SQL编程语言的基础知识。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL(结构化查询语言)的功能,用于...
Oracle PL/SQL是一种过程化语言,它扩展了SQL的功能,使得开发者可以在数据库中编写复杂的程序。PL/SQL是Oracle数据库的内置编程语言,主要用于在数据库级别实现业务逻辑和控制流程。 PL/SQL由几个基本部分组成,...