什么是Oracle数据库中内置SQL函数和Oracle包的位置

时间:2013-06-08 06:51:54

标签: sql oracle oracle11g

我想知道文件/表的位置,其中存储内置函数/包/ Oracle程序的定义,如MAX(),DBMS_OUTPUT等。

2 个答案:

答案 0 :(得分:2)

在PL / SQL引擎中,Oracle提供的函数(如MAX())是STANDARD模式中包SYS的一部分。

大多数其他提供的软件包都位于SYS架构中,但您可以很容易地找到任何单个软件包的位置 - for example

SELECT *
FROM all_objects
WHERE object_name = 'DBMS_OUTPUT'

<强> Results

|  OWNER | OBJECT_NAME | SUBOBJECT_NAME | OBJECT_ID | DATA_OBJECT_ID | OBJECT_TYPE |                       CREATED |                 LAST_DDL_TIME |           TIMESTAMP | STATUS | TEMPORARY | GENERATED | SECONDARY | NAMESPACE | EDITION_NAME |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|    SYS | DBMS_OUTPUT |         (null) |      4972 |         (null) |     PACKAGE | August, 27 2011 08:22:22+0000 | August, 27 2011 08:22:22+0000 | 2011-08-27:08:22:22 |  VALID |         N |         N |         N |         1 |       (null) |
| PUBLIC | DBMS_OUTPUT |         (null) |      4973 |         (null) |     SYNONYM | August, 27 2011 08:22:22+0000 | August, 27 2011 08:22:22+0000 | 2011-08-27:08:22:22 |  VALID |         N |         N |         N |         1 |       (null) |

以下文档页面列出了大多数(如果不是全部)PL / SQL提供的软件包: http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/intro.htm#BABGEDBH

答案 1 :(得分:1)

用于创建内置函数,包和过程的脚本存储在数据库服务器计算机上。您必须找到环境变量$ORACLE_HOME的值,然后转到$ORACLE_HOME/rdbms/admin/。只需使用grep查找您正在寻找的文件。

如果数据库服务器是Windows计算机,请在命令提示符处查看ECHO %ORACLE_HOME%并从那里继续。