对不起,这个非常笼统的标题,想不出用简短的词来表达它的最佳方式。我对不同客户的一些出口有疑问。它们是针对每个客户的相同查询,但按 ID 过滤。我想为每种不同类型的导出创建选项卡,并为每个选项卡中的不同客户提供变量,以便我可以轻松地在任何数据库实例上为任何客户运行它们。但是,最后一个语句是一个查询,我希望它在结果窗口中返回,但它告诉我它需要一个 INTO 语句。我对光标不是很好,不确定这是否是正确的答案,但我想我会问你们所有人,因为你们过去都帮助过我很多。谢谢。
选项卡示例:
DECLARE lEventID INTEGER;
lCustID INTEGER := 1 -- Development Customer1
--lCustID INTEGER := 2 -- Development Customer2
--lCustID INTEGER := 3 -- Development Customer3
--lCustID INTEGER := 4 -- Development Customer4
--lCustID INTEGER := 5 -- Development Customer5
--lCustID INTEGER := 101 -- Testing Customer1
--lCustID INTEGER := 102 -- Testing Customer2
--lCustID INTEGER := 103 -- Testing Customer3
--lCustID INTEGER := 104 -- Testing Customer4
--lCustID INTEGER := 105 -- Testing Customer5
--lCustID INTEGER := 201 -- Production Customer1
--lCustID INTEGER := 202 -- Production Customer2
--lCustID INTEGER := 203 -- Production Customer3
--lCustID INTEGER := 204 -- Production Customer4
--lCustID INTEGER := 205 -- Production Customer5
BEGIN
SELECT EventID INTO lEventID
FROM Event
WHERE EventName = 'Event1'
SELECT Field1,
Field2,
Field3
FROM Table1
WHERE EventID = lEventID
AND CustomerID = lCustID;
END;
现在,我确实相信我可以更改DECLARE
to var
,删除BEGIN
andEND;
,然后将第一个查询作为子查询放在第二个查询中,这应该可以工作。但是,我试图保持它在它所在的包中的结构。我不想运行这个代码在包中的过程,因为有更新和插入语句。我只想运行此查询,以便在实际执行我想要它执行的操作之前查看可能发生的情况。我将与一位同事共享这个工作空间,我不希望他们太困惑。在原始包中,查询被放入游标中,游标是最终导出的过程的输出参数。如果你能提供帮助,我真的很感激。此外,Benthic Golden 是我们开发人员用来与 Oracle 交互的实用程序,因为这是我们公司拥有的许可证(我相信我们不能使用其他套件)。