【问题标题】:Can you use an already created procedure and an already created function inside of a package?您可以在包内使用已创建的过程和已创建的函数吗?
【发布时间】:2019-06-25 03:17:14
【问题描述】:

我是 PL/SQL 的新手,我正在尝试创建一个包,其中包含我已经创建并存储到数据库中的过程和函数。有没有办法简单地使用已经创建的过程/函数,或者我只需要在包体内重新创建它们?

【问题讨论】:

  • 抱歉,在阅读完本文档后,我无法找到解决问题的方法。
  • 您需要重新创建包中的过程和函数(理想情况)。 -- 或者 -- 在包内创建过程/函数,并从内部调用已经存在的函数/过程,以便在一个地方具有相同的逻辑。
  • 好的,我最终在包内重新创建了它。感谢您的回复。
  • @G_Powersx08 您可以从其他包中调用过程和函数,例如dbms_output.put_line('Hello');你问的是这个吗?

标签: oracle plsql


【解决方案1】:

如果程序/函数已经创建并部署在数据库上,那么您可以在同一架构上创建的任何包中使用它们,无需在包中重新创建它们。 如果过程/函数是在与您的包不同的模式上创建的,您所要做的就是将过程/函数的执行权限提供给您正在部署包的模式。在包内只需简单地通过在前面附加所有者模式来调​​用过程/函数(owner_schema.function_name(parameter))。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    通常,软件包用于为您的工作提供模块化和易于更新的功能。这就是为什么您必须在包内创建过程/函数的原因。 但是,这并不意味着您不能调用外部编写的过程/函数。您必须创建一个 proc/function 并在其中调用外部 proc/function,这会增加您的工作量。

    因此,将您的工作与包中的一个模块保持相关总是更好。 简而言之,在包内创建过程/函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      相关资源
      最近更新 更多