在 Oracle 10g 中将参数解析为来自 SP 的视图
Posted
技术标签:
【中文标题】在 Oracle 10g 中将参数解析为来自 SP 的视图【英文标题】:Parse a parameter to a view from a SP in Oracle 10g 【发布时间】: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
不应该是选定的列之一?
【参考方案1】:
这是使用包变量整理出来的。更多解释可以使用this URL
【讨论】:
以上是关于在 Oracle 10g 中将参数解析为来自 SP 的视图的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle 11g 的过程中将 REFCURSOR 变量打印为 OUT 参数时出错