【问题标题】:Using a PL/SQL stored procedure in Crystal Report command object在 Crystal Report 命令对象中使用 PL/SQL 存储过程
【发布时间】:2014-01-09 22:24:18
【问题描述】:

我想使用 Oracle 直接连接从水晶报表命令对象调用存储过程。存储过程需要一个 refcursor 和一些可以从报告中传递的参数,但我不确定语法应该是什么样子。

为简单起见,请随意假装存储过程只需要一个 refcursor 而没有别的。语法应该是什么样的?我假设我需要声明 refcursor,调用 SP,然后返回光标。

不过,我对这些东西很陌生,而且我实际上不确定如何返回光标。我认为第一位看起来像:

VARIABLE Cursor refcursor

declare
begin 
MYSTOREDPROCEDURE(:Cursor);
end;
/

我不确定如何返回光标以供 Crystal Reports 使用 (2008/2011)。我希望这是足够的信息。

【问题讨论】:

  • 请不要对 Crystal Reports 使用存储过程。它的性能可能不会比“常规”查询更好,但维护工作显着更高。在我使用 Crystal Reports 的 18 年中,我从来不需要使用任何一种报告——而且我见过很多报告。
  • 实际上,具有更模块化的存储过程似乎比 1000+ 行命令对象更易于维护。长话短说,这是我需要以一种或另一种方式做的事情。

标签: sql oracle stored-procedures crystal-reports


【解决方案1】:

您不能从command 调用存储过程。您需要以与添加表相同的方式将其添加到报告中(在数据库专家中)。此外,SP 需要以某种方式构建以与 CR 一起工作;具体来说,它需要返回一个REF CURSOR

Example.

【讨论】:

  • 您绝对可以使用 ODBC 连接(我已经设置好并且可以使用)。 Oracle 直接连接有什么不同吗?
  • 真的吗?什么是 ODBC 语法?在我尝试使用本机 Oracle 连接的几次中,我使用了示例中的语法。让我感到惊讶......
  • {Call STORED_PROCEDURE('Parameters','More Parameters')}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多