在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;
我这么去掉不对,报一堆完全看不懂的错误。

参考技术A

给你个例子吧

--创建存储过程

--创建存储过程
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型游标参数的过程.的主要内容,如果未能解决你的问题,请参考以下文章

易语言模块里的类命令怎么调用?

C# 主窗口调用子窗口的值传递?

易语言 怎么调用已经编译好的DLL

C语言编译后的exe程序怎样进行复制粘贴操作

什么是PL/SQL

怎么用C语言编写一个windows窗口?