Oracle存储过程调用存储过程

今天突然突发奇想让一个存储过程调用另外一个存储过程返回的游标,一个自己写的demo

内存储过程(v_id为传入的参数,result_cursor为传出的存储过程,放在cursor_package中)

create or replace procedure proc_innercursor(v_id in varchar, result_cursor
out cursor_package.type_cursor) is
v_name varchar2(10);
begin
open
result_cursor for select t.name from sys_resource t where t.id=v_id;
end
proc_innercursor;

定义包

create or replace package cursor_package as
type type_cursor is ref
cursor;
end;

外部调用的存储过程

create or replace procedure proc_testcursor (v_id in varchar2) is

result_cursor cursor_package.type_cursor;
type c_resor is record(

v_pid sys_resource.name%type  自定type
);
v_pidid
c_resor;
begin
proc_tesetcursor(v_id,result_cursor);
loop

fetch result_cursor into v_pidid;
exit when result_cursor%notfound;

dbms_output.put_line(v_pidid.v_pid);
end loop;
close
result_cursor;
end proc_testcursor;

时间: 2024-10-09 06:34:07

Oracle存储过程调用存储过程的相关文章

Oracle定时器调用存储过程

1. 创建表 create table job_table(run_time date); 2. 创建存储过程 create or replace procedure job_proc is begin insert into job_table (run_time) values (sysdate); end; 3. 创建定时器job,并且指定为一分钟执行一次 declare job number; begin dbms_job.submit(job, 'job_proc;', sysdate

连接英文字符集的ORACLE和调用存储过程问题

部署在IIS上的webservice连接英文字符集的ORACLE数据库出现问题“未在本地计算机上注册"MSDAORA.1"提供程序”,解决方案如下: 原因:如错误,64位系统未注册"MSDAORA.1"提供程序 解决:在IIS应用程序池中找到自己的网站,打开高级设置,设置“启用32位应用程序”为“True”即可. 另外还有其他解决方案,比如设置项目目标平台为x86,使用其他连接字符串等.相对来说改应用程序池最简单方便,也不会更改项目和代码. 调用存储过程的方法:  

存储过程调用存储过程

from:https://www.cnblogs.com/zdkai/archive/2012/10/19/2730461.html 在存储过程中如何使用另一个存储过程返回的结果集 与这个问题具有相同性质的其他描述还包括:如何在存储过程中检索动态SQL语句的执行结果?如何实现类似SELECT * FROM (EXEC procedure_name @parameters_var) AS datasource WHERE ... 的功能?procedure_name是一个存储过程的名字,@para

java连接oracle数据库调用存储过程实现分页查询(emp为例)

第一步:建一个含游标类型的包 sql>create or replace package testPackage as type test_cursor is ref cursor;    --定义名为test_cursor 的游标 end testPackage; 第二步:编写分页的存储过程 sql>create or replace procedure fenYe( tableName in varchar2,--表名 pageSize in number,--每页显示的记录数 pageN

Oracle job调用存储过程

在PL/SQL中的what值中直接写入存储过程的名称+“分号”: begin sys.dbms_job.submit(job => :job, what => 'del_ky_items;', next_date => to_date('24-06-2015 16:30:00', 'dd-mm-yyyy hh24:mi:ss'), interval => 'trunc(sysdate,''mi'')+1/24'); commit; end; / 如果有参数,使用两个单引号把字符串引

oracle job 调用存储过程的使用

-- job begin sys.dbms_scheduler.create_job(job_name => 'SSS.P_TRMS_CAR_TASK_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN PROC_TT_TRMS_CAR_TASK; END;', start_date => to_date('21-06-2017 00:00:00', 'dd-mm-yyyy hh24:mi:ss'), repeat_inter

oracle定时调用存储过程

http://zhidao.baidu.com/link?url=wY9qYTQHX7YksWmE9LtF4UIOkJgCDi8mXS7XkWi9u0GcD9dh0Evr7OHVzSsPDZAH6F258S4b3KAdkKvKLoPVOq http://blog.csdn.net/thinkscape/article/details/7411012 :+++++++++++++++++++++++++++++ 步骤: -- Create tablecreate table JOB_TABLE(

oracle循环调用存储过程案例

如下: create or replace procedure testdate_2 is i number; out1 varchar2(100); out2 varchar2(100); CUSTOMERID NUMBER; cursor projidlist is select p.projid from proj_baseinfo p where p.projstage!='-999'; begin for i in projidlist LOOP begin select p.cust

Java数据库连接——JDBC调用存储过程,事务管理和高级应用

阅读目录 一.JDBC常用的API深入详解及存储过程的调用1.存储过程(Stored Procedure)的介绍2.JDBC调用无参存储过程3.JDBC调用含输入参数存储过程4.JDBC调用含输出参数存储过程二.JDBC的事务管理1.JDBC实现事务管理2.通过代码实现事物的管理三.数据库连接池(dbcp.c3p0)1.dbcp使用步骤2.c3p0使用步骤3.连接池总结四.JDBC的替代产品(Hibernate.Mybatis)1.Commons-dbutils 2.Hibernate简介3.M