在 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 参数时出错

在oracle 10g sql plus中将日期和时间插入时间戳

在Oracle中将字符串拆分为多行

在Oracle中将字符串拆分为多行

在Oracle中将字符串拆分为多行

在Oracle中将字符串拆分为多行