oracle两种方式创建的(包)存储过程,在PB(Powerbuilder)创建数据窗口数据源为存储过程时为什么看不到

oracle两种方式创建的(包)存储过程,在PB(Powerbuilder)创建数据窗口数据源为存储过程时为什么看不到其中的一个存储过程,只能看到另一个。如下:--Cre... oracle两种方式创建的(包)存储过程,在PB(Powerbuilder)创建数据窗口数据源为存储过程时为什么看不到其中的一个存储过程,只能看到另一个。
如下:
-- Create example table
==============================================================================
drop table work_orders
/
create table work_orders (
company varchar2(3),
order_no varchar2(10),
order_date date)
/
insert into work_orders values ('ABC','1000', to_date('1999/03/05','yyyy/mm/dd'))
/
insert into work_orders values ('ABC','1001', to_date('1999/03/07','yyyy/mm/dd'))
/
insert into work_orders values ('ABC','1002', to_date('1999/03/06','yyyy/mm/dd'))
/
insert into work_orders values ('BCD','1002', to_date('1999/03/06','yyyy/mm/dd'))
/
insert into work_orders values ('BCD','1005', to_date('1999/03/15','yyyy/mm/dd'))
/
commit
/
-- 方法一:
1.先创建包头及参数的声明(如游标类型、记录类型、基本类型等),但是并没有声明要实现的存储过程、函数,而是单独再另外创建一个独立的存储过程,而不是在包体中实现存储过程。这种方式在PB11中创建数据源时可以看到该存储过程。
============================================================================== -- 1.Similar example, but now using one retrieval argument -- Create Package. Name: a_demo2(有输入参数) -- ============================================================================== CREATE OR REPLACE PACKAGE a_demo2 IS
TYPE my_result_set IS REF CURSOR RETURN work_orders%ROWTYPE;
END a_demo2; / -- Create Procedure. Name: proc_demo2 -- References package a_demo2 -- ============================================================================== CREATE OR REPLACE PROCEDURE proc_demo2 (as_comp IN VARCHAR2, out_result IN OUT a_demo2.my_result_set) AS BEGIN -- return result to datawindow OPEN out_result   FOR SELECT * FROM work_orders    WHERE company = as_comp; END proc_demo2;
/

--方法二:
2.在包头中声明要实现的存储过程,并在包体中实现包头中声明的存储过程 。但是PB选择数据源为存储过程是,却找不到此存储过程.为什么??
/**********************************************************************************/ -- Create Package. Name: a_demo4 -- ============================================================================== CREATE OR REPLACE PACKAGE a_demo4 IS   TYPE my_result_set IS REF CURSOR RETURN work_orders%ROWTYPE;
  PROCEDURE proc_demo4 (as_comp IN VARCHAR2, out_result IN OUT a_demo4.my_result_set);
END a_demo4; /
CREATE OR REPLACE PACKAGE BODY a_demo4 IS
PROCEDURE proc_demo4 (as_comp IN VARCHAR2, out_result IN OUT a_demo4.my_result_set) IS
BEGIN -- return result to datawindow OPEN out_result FOR SELECT * FROM work_orders WHERE company = as_comp; END proc_demo4; END a_demo4;
/

方法一创建的存储过程,在PB数据窗口选择数据源为存储过程时,是可以找到存储过程的,但是方法二创建的却找不到,为什么,请各位详细指导一下。急急!
展开
 我来答
太平岁年丰9
2013-08-12 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1095万
展开全部
会不会是权限问题?或者你的方法二的存储过程创建到别的schema上了?
查一下字典dba_objects 的owner列
select * from dba_objects where object_name='A_DEMO4'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式