【发布时间】:2014-04-08 06:01:54
【问题描述】:
我通过加入一些表创建了一个视图。我使用 SP 来调用该 VIEW,并在 SP 中使用 ID 过滤视图的数据集。现在我需要将此 ID 传递给 VIEW 并在 VIEW 本身内部进行过滤。在Oracle 10g中这个ID作为参数传递给查看的方式是什么?
Current View
CREATE OR REPLACE FORCE VIEW "MY_VIEW"
//SELECT statements goes here
FROM MY_TABLE_1, MY_TABLE_2
//TABLE JOINS
where
//FILTERS
当前存储过程
CREATE OR REPLACE PROCEDURE MY_SP
(
REQUESTACCOUNTID IN NUMBER
, p_cursor out SYS_REFCURSOR
) AS
internal_flag NUMBER;
BEGIN
open p_cursor for
SELECT //SELECT THE COLUMNS
from MY_VIEW my
WHERE my.account_id = REQUESTACCOUNTID;
END MY_SP;
我需要做的是,在选择时将参数REQUESTACCOUNTID解析到视图
【问题讨论】:
-
我不确定我是否关注...你在谈论this sort of approach吗?
-
对不起。我不明白。我需要将一个参数解析到 VIEW 中,该参数在 SP 中用于选择数据。
-
我已经添加了当前代码并解释了我需要做什么
-
您可以参数化视图,如我之前链接到的问题中所示。或者你可以让你的程序成为一个更简单的函数。虽然不像在针对视图的查询中包含
requestedaccountid那样简单。您如何设想您的查询外观 - 您是否正在尝试做类似select * from my_view(1234)而不是select * from my_view where account_id = 1234的事情?为什么 -account_id不应该是选定的列之一?
标签: oracle stored-procedures view oracle10g