一般碰到ORACLE有需要调试存储过程参数中有是TYPE、LIST集合的时候,一般调试起来都比较麻烦。
现在用一种比较简单的方式展现下
TYPE代码
--子TYPE
CREATE OR REPLACE TYPE RSS_STR_OBJECT_TYPE IS OBJECT
(
str_value varchar2(200)
);
grant Execute on rssdata.RSS_STR_OBJECT_TYPE to rssopr;
grant execute on rssdata.RSS_STR_OBJECT_TYPE to r_rssdata_Exec;
--父TYPE代码
CREATE OR REPLACE TYPE RSS_STR_OBJECT_TYPE_LIST IS TABLE OF rssdata.RSS_STR_OBJECT_TYPE
grant Execute on rssdata.rss_str_object_type_list to rssopr;
grant execute on rssdata.rss_str_object_type_list to r_rssdata_Exec;
2.简单的存储过程
PROCEDURE rss_test_type_list_pro(in_rss_str_object_type_list IN rss_str_object_type_list,
out_retcode OUT Varchar2,
out_message OUT Varchar2) IS
i NUMBER;
begin
--修改对计数器赋值应该放到LOOP外面
i := in_rss_str_object_type_list.first;
LOOP
INSERT INTO TEST
(D)
VALUES
(in_rss_str_object_type_list(i).str_value);
EXIT WHEN i = in_rss_str_object_type_list.last;
i := in_rss_str_object_type_list.next(i);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
out_retcode := '9';
out_message := '[rss_test_type_list_pro]错误信息' || SQLCODE || ',' ||
SUBSTR(SQLERRM, 1, 120);
END rss_test_type_list_pro;
3. 调试的时候的存储过程匿名块书写
declare
-- 首先初始化这个需要测试的对象 创建一个对象
in_rss_str_object_type_list rss_str_object_type_list:= rss_str_object_type_list();
-- 再对其中需要测试的一个集合变量m1赋值
in_rss_str_object_type_m1 rss_str_object_type := rss_str_object_type('深圳常兴支行');
begin
-- 调用存储过程的时候开始
in_rss_str_object_type_list.extend();
--将成员m1赋值给集合的最后一个元素
in_rss_str_object_type_list(in_rss_str_object_type_list.last) := in_rss_str_object_type_m1;
rss_test.rss_test_type_list_pro(in_rss_str_object_type_list => in_rss_str_object_type_list,
out_retcode => :out_retcode,
out_message => :out_message);
end;
分享到:
相关推荐
Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 ...52. 自动备份Oracle数据库
4. JDBC Type 4(Thin Driver):Oracle JDBC驱动中的ojdbc6.jar和ojdbc6_g.jar属于这一类,它们是纯Java实现,直接与Oracle数据库通信,性能最佳且无需安装额外软件。 使用这些驱动时,开发人员需要在Java代码中...
数据库操作是指在Skyline与Oracle数据库坐标关联中执行的一系列操作,以确保坐标数据的正确性和一致性。在本文中,我们将详细介绍Skyline与Oracle数据库坐标关联的操作说明。 一、创建表字段 在Skyline与Oracle...
Oracle数据库sqlplus是Oracle数据库管理系统中的一种命令行工具,用于执行SQL语句、查看数据库状态、执行数据库管理任务等。以下是Oracle数据库sqlplus常用命令的知识点总结: 获取数据库信息 1. 获取数据库名和...
在实际操作中,Oracle数据库的管理和开发涉及大量细节和技巧,如性能优化、备份恢复、安全设置等。理解这些基本概念和操作是成为Oracle数据库管理员或开发人员的基础。通过不断学习和实践,可以更好地掌握Oracle...
本资源主要聚焦于如何利用Logstash 5.6.1将Oracle数据库中的数据高效地导入到Elasticsearch中。这个过程涉及到以下关键知识点: 1. **Logstash配置**:首先,你需要配置Logstash的`input`、`filter`和`output`三个...
在Oracle数据库中,有时我们需要将业务数据导出为文本格式,这通常涉及到使用UTL_FILE包,这是一个内置的PL/SQL包,允许在数据库级别进行文件操作,如读取和写入文件。 UTL_FILE_DIR参数是一个关键的初始化参数,它...
### ORACLE数据库自动备份3种方法详解 #### 一、概述 在企业级应用中,数据库的安全性至关重要,定期进行数据库备份是确保数据安全的重要措施之一。对于Oracle数据库而言,实现自动化的数据库备份不仅可以提高效率...
本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...
Oracle 数据库导出文本的方法是 Oracle 数据库的入门级应用,旨在介绍如何将 Oracle 数据库中的数据导出到文本文件中。在实际应用中,我们经常需要将查询结果导出到文本文件中,以便于后续处理或分析。下面我们将...
Oracle数据库中的索引维护是数据库管理员日常工作中至关重要的一部分,尤其是在大型企业级应用中,高效的索引管理能够显著提升查询性能和数据库的整体效率。本文主要关注Oracle8i版本中的B-tree索引维护。 首先,...
在处理Oracle数据库中的大文本数据时,CLOB(Character Large Object)类型被广泛应用于存储大量字符数据,如文章、报告或任何大型文本信息。本文将详细介绍如何有效地向Oracle数据库插入Clob大段文本,以及在操作...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其数据安全性及稳定性备受赞誉。数据库备份是确保数据安全的重要环节,防止数据丢失或损坏时能够快速恢复。本篇将详细介绍Oracle数据库备份的基本概念...
首先,我们需要创建一个 Oracle 数据库连接,用于与数据库进行交互。我们可以使用 OracleClient 命名空间中的 OracleConnection 类来创建连接对象。下面是一个简单的示例代码: ```csharp string connString = ...
在Java环境中,Oracle数据库驱动提供了必要的功能接口,使得应用程序能够连接到Oracle数据库,执行SQL命令,并获取结果。 Oracle数据库驱动主要有四种类型: 1. **Type 1( Thin Driver)**:这是一种纯Java实现的...
在NBU管理控制台中,你需要配置一个针对Oracle数据库的备份策略,包括选择备份类型(如全量、增量或差异备份),设定备份时间,以及定义备份保留规则。NBU的Oracle插件能够理解Oracle的数据文件结构,确保备份的完整...
接下来我将详细解释文档中涉及的Oracle数据库相关知识点。 首先,文档中提到了一些关键的Oracle数据库对象,包括: 1. 表(table): 是存储数据的数据库对象,如文档中的“test_tri_tab1”和“test_tri_tab2”。 ...
程序执行功能的简单说明:在客户端的浏览器界面上输入一个客户端的文件名(本文以pdf类型文件为例),将该文件的全部内容做为一个大对象的数据存储在服务器端的Oracle数据库中。任何一个客户端都可以通过浏览器再次...
在Oracle数据库管理中,数据库链接(Database Link)是一项关键功能,它允许用户在一个数据库实例上执行操作时,能够访问另一个远程数据库中的数据。这在分布式数据库环境中尤其重要,因为可以促进不同数据库之间的...