`
saybody
  • 浏览: 928584 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

oracle 关于package的简单入门

阅读更多

先建一张表

-- 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 从入门到精通

    本资料《Oracle PLSQL 从入门到精通》将引领读者深入理解这一强大的工具。 首先,入门阶段,你需要了解PLSQL的基本结构,包括声明部分(DECLARATION)、执行部分(EXECUTION)和异常处理部分(EXCEPTION)。声明...

    Oracle 入门文档2

    首先,安装Oracle数据库服务器端和客户端是入门的第一步。在安装过程中,选择一个不含中文字符和空格的目录是非常重要的,因为这些特殊字符可能会导致后续的操作出现问题。安装完成后,记得记录下安装过程中提示的...

    oracle pl/sql入门教程

    本入门教程旨在帮助初学者快速理解并掌握Oracle PL/SQL的基础知识,通过丰富的实例来解析其核心概念。 一、PL/SQL简介 PL/SQL是Oracle数据库提供的过程化语言,它允许开发者编写包含SQL语句的程序块,用于执行复杂...

    Oracle+11g+SQL和PL+SQL从入门到精通

    本教程《Oracle 11g SQL和PL/SQL从入门到精通》旨在帮助初学者快速掌握这两项核心技术。 1. **Oracle 11g基础知识**:了解Oracle 11g的系统架构,包括服务器进程、内存结构(如SGA和PGA)、数据文件、控制文件、...

    Oracle PL/SQL入门之案例实践

    在这个"Oracle PL/SQL入门之案例实践"中,我们可以通过一系列的操作来学习和理解PL/SQL的基础知识。 首先,案例要求创建两个表:`emp`和`dept`。`emp`表用于存储员工信息,包含员工ID(emp_id)、姓名(emp_name)...

    Oracle11 存储过程入门实例2012-6-12

    ### Oracle11g存储过程入门实例解析 #### 一、背景介绍 在Oracle数据库系统中,存储过程是一种数据库对象,可以在数据库服务器上执行SQL语句和PL/SQL代码。存储过程能够提高应用程序性能,增强安全性,并减少网络...

    oracle odi 入门

    在文档《ODI应用指南》中,作者黄建华详细阐述了Oracle Data Integrator的入门知识,介绍了ODI的基础知识、安装步骤、界面组件以及如何创建和执行数据集成项目。这些内容不仅包括了ODI的操作基础,还涵盖了从简单的...

    Oracle 11g 从入门到精通——第十九章(视频教程)

    本章视频教程主要涵盖了Oracle 11g在实际应用中的关键方面,旨在帮助初学者从入门到精通。 首先,视频教程的第一部分是“待遇管理模块设计”。这一章节将深入讲解如何在Oracle 11g环境中构建一个待遇管理模块,这...

    Oracle9i入门教程(PDF版)

    Oracle9i入门教程是为初学者设计的一份全面指南,旨在帮助用户理解并掌握Oracle数据库的基础操作和管理。 **一、Oracle数据库基础** Oracle9i的基础概念包括:数据库、表空间、数据块、段、表、索引、视图等。...

    oracle数据库入门

    以下是对"Oracle数据库入门"这一主题的详细讲解。 一、Oracle数据库简介 Oracle数据库系统是一种支持分布式计算的大型数据库管理系统,提供数据存储、管理、查询和分析等多种功能。它采用SQL(结构化查询语言)作为...

    Oracle9i PL_SQL从入门到精通

    在Oracle9i中,可以利用PL/SQL进行简单的面向对象编程,包括对象类型、对象变量、对象方法和继承等概念。 通过学习“Oracle9i PL/SQL从入门到精通”,读者不仅可以掌握PL/SQL的基本语法和编程技巧,还能深入理解...

    oracle基础入门

    Oracle基础入门是数据库管理和开发初学者的指南,涵盖了Oracle数据库的基本操作和PL/SQL编程。以下是对这些主题的详细说明: 一、相关知识 1.1 关系型数据库(目前主流) 关系型数据库是最常见的数据库类型,以...

    Oracle 9i java帮助文档

    Oracle 9i Java 帮助文档是一套全面的指南,专为在Oracle数据库环境中进行Java编程的开发者设计。这套文档包含了丰富的信息,包括各种方法、类的使用方式以及API的详细说明。虽然文档是英文版,但它简洁明了,适合...

    Oracle9i PLSQL 入门到精通读书笔记

    通过阅读“Oracle9i PLSQL 入门到精通”这本书,读者可以系统地学习如何使用PLSQL进行数据库编程,从简单的数据操作到复杂的业务逻辑实现,逐步提升为数据库专家。书中的实例和实践项目将帮助读者巩固理论知识,提高...

    PL/SQL入门到精通书的源代码

    9. **包(Package)**:包是一种组织PL/SQL对象(如过程、函数、变量)的方式,可以提高代码的封装性和可维护性。 10. **记录类型(Record Types)**:自定义记录类型允许你创建类似于数据库表结构的变量,这对于...

    15Linux下Oracle的使用入门.pptx

    Oracle数据库提供了丰富的数据定义语言(DDL),如`CREATE DATABASE`用于创建数据库,`CREATE USER`分配权限,`CREATE TABLE`构建表,`CREATE VIEW`建立视图,`CREATE INDEX`创建索引,以及`CREATE PROCEDURE`、`...

    oracle 11g sql pl sql 从入门到精通 全本

    这本书"Oracle 11g SQL PL SQL 从入门到精通 全本"应该是涵盖了这两个领域的全面知识,帮助初学者到进阶者逐步掌握在Oracle 11g环境中使用SQL和PL/SQL进行数据操作与应用开发。 首先,对于SQL,你需要了解以下几个...

    Oracle Database 10g PL/SQL入门教程

    Oracle Database 10g PL/SQL入门教程是针对初学者设计的一份教程,旨在帮助读者掌握Oracle数据库系统中PL/SQL编程语言的基础知识。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL(结构化查询语言)的功能,用于...

    Oracle_PLSQL_快速入门.pdf

    Oracle PL/SQL是一种过程化语言,它扩展了SQL的功能,使得开发者可以在数据库中编写复杂的程序。PL/SQL是Oracle数据库的内置编程语言,主要用于在数据库级别实现业务逻辑和控制流程。 PL/SQL由几个基本部分组成,...

Global site tag (gtag.js) - Google Analytics