微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用包中的过程或函数

如何解决调用包中的过程或函数

我已经创建了一个包以及其中的过程和函数我有一个小疑问。 如果我在包中同时创建了程序名称employee_dtls employee_dtls 过程作为模式中的独立对象。

但是我想在我的包中调用独立过程employee_dtls但是当我试图调用 包中的过程正在执行,一个独立的过程没有被调用

我假设由于两个过程的名称相同,它正在调用包内的过程。

请帮助我在这种情况下该怎么办?

解决方法

你能做什么?限定过程名称(如贾斯汀评论的那样)。方法如下(阅读代码中的注释):

独立程序:

SQL> create or replace procedure p_test is
  2  begin
  3    dbms_output.put_line('...standalone P_TEST procedure');
  4  end;
  5  /

Procedure created.

打包程序:

SQL> create or replace package pkg_test is
  2    procedure p_test;
  3    procedure p_run;
  4  end;
  5  /

Package created.

SQL> create or replace package body pkg_test is
  2    procedure p_test is
  3    begin
  4      dbms_output.put_line('...packaged P_TEST procedure');
  5    end;
  6
  7
  8    procedure p_run is
  9    begin
 10      dbms_output.put_line('calling P_TEST');
 11      p_test;           -- no qualifier - runs the packaged procedure (that's what you have now)
 12
 13      dbms_output.put_line('calling SCOTT.P_TEST');
 14      scott.p_test;     -- procedure name preceded by owner name - runs the standalone procedure
 15
 16      dbms_output.put_line('calling PKG_TEST.P_TEST');
 17      pkg_test.p_test;  -- procedur ename preceded by package name - runs the packaged procedure
 18    end;
 19  end;
 20  /

Package body created.

测试:

SQL> set serveroutput on;
SQL> exec pkg_test.p_run;
calling P_TEST
...packaged P_TEST procedure
calling SCOTT.P_TEST
...standalone P_TEST procedure
calling PKG_TEST.P_TEST
...packaged P_TEST procedure

PL/SQL procedure successfully completed.

SQL>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?