# DROP PACKAGE
#### 功能描述
删除已存在的PACKAGE或PACKAGE BODY。
#### 注意事项
- 删除PACKAGE BODY后，PACKAGE内的存储过程及函数会同时失效。
- 仅初始用户有权对初始用户的PACKAGE进行DROP操作。
 
#### 语法格式
```
DROP PACKAGE [ IF EXISTS ] package_name;
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002793708149.png "点击放大")
```
DROP PACKAGE BODY [ IF EXISTS ] package_name;
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002764309606.png "点击放大")
#### 参数说明
- **IF EXISTS**
  判断指定的PACKAGE或PACKAGE BODY是否存在。
  - 如果指定的PACKAGE或PACKAGE BODY存在，则删除成功。
  
  - 如果指定的PACKAGE或PACKAGE BODY不存在，不会进行删除操作，仅产生一个NOTICE提示，用于告知指定的PACKAGE或PACKAGE BODY不存在。
   
- **package_name**
  要删除的PACKAGE名称。
  取值范围：已存在的PACKAGE名。
  
 
#### 示例
```
--创建ORA兼容性数据库。
gaussdb=# CREATE DATABASE ora_compat_db DBCOMPATIBILITY 'ORA';
CREATE DATABASE
gaussdb=# \c ora_compat_db
--创建PACKAGE。
ora_compat_db=# CREATE OR REPLACE PACKAGE emp_bonus IS
var1 INT:=1;--公有变量
var2 INT:=2;
PROCEDURE testpro1(var3 INT);--公有存储过程，可以被外部调用
END emp_bonus;
/
--删除PACKAGE。
ora_compat_db=# DROP PACKAGE emp_bonus;
--切换回初始数据库，并删除ORA兼容性数据库。请用真实的数据库名替换postgres。
ora_compat_db=# \c postgres
gaussdb=# DROP DATABASE ora_compat_db;
```
#### 相关链接
[ALTER PACKAGE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0199.html)，[CREATE PACKAGE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0260.html)
