在SQL窗口里,不是在语言的程序中,怎么调用oracle带有out型游标参数的过程.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL窗口里,不是在语言的程序中,怎么调用oracle带有out型游标参数的过程.相关的知识,希望对你有一定的参考价值。
比如有个过程
pro1(name varchar2,acursor out my_package.cursortype)
--my_package.cursortype是一个cursor类型名
那么,怎么取调用这个过程呢。
declare
acursor my_package.cursor_type1;
begin
exec pages_('emp',acursor);
close acursor;
end;
我这么去掉不对,报一堆完全看不懂的错误。
给你个例子吧
--创建存储过程
--创建存储过程Create Or Replace Procedure Proc_Inventory(
Cur_Inventory Out Sys_Refcursor)
As
Begin
Open Cur_Inventory For
Select B.Product_Name,
A.Product_Number,
A.Inventory_Year,
A.Inventory_Month,
A.Warehouse_Branch_Code,
A.Opening_Inventory,
A.Quantity_Shipped,
A.Additions,
A.Closing_Inventory
From inventory_levels A,
Product_Name_Lookup B
Where A.Product_Number = B.Product_Number
And B.Product_Language = \'SC\';
End Proc_Inventory;
/
--运行存储过程
set serveroutput on;
Declare
Cur_Inventory Sys_Refcursor;
str_ProductName Varchar2(50);
int_ProductNumber Number(10);
int_Year Number(5);
int_Month Number(5);
int_WarehouseBranchCode Number(10);
int_OpeningInventory Number(10);
int_QuantityShipped Number(10);
int_Additions Number(10);
int_ClosingInventory Number(10);
Begin
Dbms_Output.enable (buffer_size => null);
Proc_Inventory(Cur_Inventory);
Fetch Cur_Inventory Into str_ProductName,
int_ProductNumber,
int_Year,
int_Month,
int_WarehouseBranchCode,
int_OpeningInventory,
int_QuantityShipped,
int_Additions,
int_ClosingInventory;
While Cur_Inventory %Found Loop
Dbms_Output.put_line(\'output:\' || str_ProductName);
Fetch Cur_Inventory Into str_ProductName,
int_ProductNumber,
int_Year,
int_Month,
int_WarehouseBranchCode,
int_OpeningInventory,
int_QuantityShipped,
int_Additions,
int_ClosingInventory;
End Loop;
End;
/ 参考技术B 存储过程在SQL中不能调用,可以写成函数在SQL中调用
什么是PL/SQL
1.过程、函数、触发器是PL/SQL编写的。
2.过程、函数、触发器是在oracle中的。
3.PL/SQL是非常强大的数据库过程语言。
4.过程、函数可以在java中调用。
窗口:
程序窗口:可以执行sql,sqlplus相关的语句,例如存储过程、方法,一般用来开发程序
SQL窗口:执行的是dml,ddl语句,主要用户语句的查询和显示(应用最多的一个窗口)
命令窗口:除了可以执行sql,sqlplus相关的命令,还可以执行更多的命令,如call等
测试窗口: 一般用户测试存储过程等的debug(排除故障持续)
解释计划窗口:解释执行计划的,调优时使用。
以上是关于在SQL窗口里,不是在语言的程序中,怎么调用oracle带有out型游标参数的过程.的主要内容,如果未能解决你的问题,请参考以下文章