删除包

用 DROP PACKAGE 命令对不需要的包进行删除,语法如下:

  1. DROP PACKAGE [BODY] [user.]package_name;

示例如下:

  1. obclient> drop package pkg_test ;

包的管理

使用如下程序包相关的视图可以查看包的信息和管理包:

  • USER_OBJECTS:查看数据库对象,可以用来列出包的名称,当前状态,创建时间等信息。

    注意

    包(PACKAGE)和包体(PACKAGE BODY)属于不同类型对象。

  • USER_SOURCE: 查看包和包体的内容。

  • USER_ERRORS: 如果上一次编译包或者包体时报错,可以在这个视图里查看错误消息。

示例 1**:当前用户下所有包的状态和创建时间**

  1. obclient>select OBJECT_NAME,OBJECT_TYPE,CREATED,STATUS
  2. from user_objects
  3. where OBJECT_TYPE like 'PACKAGE%';
  4. +-------------+-------------+-----------+---------+
  5. | OBJECT_NAME | OBJECT_TYPE | CREATED | STATUS |
  6. +-------------+-------------+-----------+---------+
  7. | DEMO_PACK | PACKAGE | 17-DEC-20 | INVALID |
  8. +-------------+-------------+-----------+---------+
  9. 1 row in set (0.00 sec)

示例 2:查看名为 DEMO_PACK 的包主体的内容

  1. obclient>select TEXT from user_source
  2. where TYPE='PACKAGE BODY'
  3. and NAME='DEMO_PACK';

示例 3:查看包主体 PKG_TEST 上次编译时报错的信息和位置

  1. obclient>select line,position,text
  2. from USER_ERRORS
  3. where NAME='PKG_TEST'
  4. and TYPE='PACKAGE BODY';