包管理
在PL/SQL程序开发中,为了方便实现模块化程序的管理,可以将PL/SQL元素(如存储过程、函数、变量、常量、自定义数据类型、游标等)根据模块的程序结构组织在一起,存放在一个包中,称为一个完整的单元,并在编译之后存储在数据库服务器中,作为一种全局结构,供应用程序调用。
创建包
执行以下步骤创建包:
步骤1: 在“对象浏览器”窗格,右键单击待创建包的指定模式下的“包”组,选择“创建包”。VDS弹出“创建包”对话框。如下图所示:
步骤2: 定义包名称,单击确定,弹出如下对话框:
步骤3: 点击“编译”按钮。弹出如下对话框,状态栏将不显示此操作的状态,可在包列表下查看。
编辑包
执行以下步骤编辑包:
步骤1: 右键单击包名称,选择“编辑”。VDS弹出如下对话框:
步骤2: 可编辑包头定义,修改完成后单击“编译”。
VDS V3.0版本开始编辑窗口支持查找替换功能(快捷键CTL+F)和撤回功能(快捷键CTL+Z)。
VDS V2.3版本开始支持在编辑窗口保存/另存脚本的功能,保存/另存脚本的方式如下:
- 选择主菜单->文件中“保存或另存为”
- 右键单击选择“保存或另存为”
- 快捷键方式:保存(CTRL+S),另存为(CTRL+ALT+S)
查看包
执行如下操作查看包属性:
右键单击包,选择“属性”查看包属性。VDS在不同页签显示所选包的属性(“基本信息”、“权限”、“SQL预览”)如下图所示:
删除包
VDS支持删除单个包和批量删除包。
删除单个包
步骤1: 右键单击待删除的包名称,选择“删除包”。弹出“删除包”对话框。
步骤2: 单击“是”删除包。
批量删除包
步骤1: 右键单击包,选择“批量删除”。
步骤2: 弹出“批量删除对象” 对话框。
步骤3: 选择需要删除的包、安全警告以及是否级联删除,点击“确定”,弹出删除成功对话框。
- VDS批量删除对象时支持级联删除,当选中级联删除时则会同时删除依赖于该包的其它对象。
- 批量删除对象时,如果有对象删除则跳过继续执行,并不会终止删除任务。
导出DDL
执行以下步骤导出包 DDL:
步骤1: 在“对象浏览器”窗格中,右键单击所选包,选择“导出 DDL”。显示“导出对象定义”对话框。
步骤2: 选择导出路径,单击“确定”。在安全警告处勾选“我同意”。
步骤3: 单击“确定”。完成后弹出“导出完成”对话框。
设置所有者
执行以下步骤设置包所有者:
步骤1: 右键单击包名称选择“设置所有者”,弹出设置所有者对话框。
步骤2: 修改完成后单击“确定”。状态栏将不显示此操作的状态,可在包列表下查看。
设置包的所有者与之对应的包体会同步修改所有者。
授权/撤销权限
执行以下步骤授权/撤销权限:
步骤1: 右键单击包名称,并选择“授权/撤销权限”。弹出“授权/撤销权限”对话框。
步骤2: 打开“权限”页签,权限页签显示当前已授权角色及权限,可新增角色授权或删除已有授权角色。
步骤3: 在“权限”下拉框,勾选或取消勾选相关权限。在“SQL 预览”页签,可以查看根据以上输入自动生成的 SQL 查询。
步骤4: 单击“完成”。
对包进行授予或撤销权限会同步修改包体的权限。
复制包
执行以下步骤进行复制包:
步骤1: 在“对象浏览器”窗格,右键单击需要复制的包名称,点击“复制”,弹出程序窗口,如下图所示:
步骤2: 程序窗口复制的包名为“**_copy”,点击编译按钮,生成新的包。“对象浏览器”中会显示复制的包。
批量导出DDL
VDS支持包批量导出DDL,执行如下步骤批量导出DDL:
步骤1: 在“对象浏览器”窗格中,右键单击“包”,选择“导出DDL”弹出“导出对象定义”对话框。
步骤2: 选择导出路径,格式及文件数量。在安全警告处勾选“我同意”。
批量导出DDL支持自定义导出对象(默认全部)、文件格式(默认.sql)和文件数量(默认单个)。
步骤3: 单击“确定”。完成后弹出“导出完成”对话框。
查看依赖关系
执行以下步骤查看依赖关系:
步骤1: 右键单击包,选择“查看依赖关系”。
弹出依赖关系窗口,如下图所示可以查看依赖对象和被依赖对象。
配置包过滤器
执行以下步骤配置包过滤器:
步骤1: 在“对象浏览器”窗格,右键单击“包”,点击过滤器,显示如下窗口:
步骤2: 单击“配置过滤器”。弹出“过滤:包 of xxx”窗口:
步骤3: 配置过滤规则,选择启动,并配置需要包括或排除的包。
步骤4: 点击“确定”按钮,对象浏览器根据过滤规则显示包。
步骤5: 选择“清除过滤器”,清除目前已经配置的过滤规则。
另外VDS还支持对指定包配置过滤器,步骤如下所示:
在“对象浏览器”窗格,在包目录下(二级菜单),右键单击“包名称”,点击过滤器,显示如下窗口:
选项 描述 配置过滤器 配置包过滤规则,选择需要展示或者排除某些包。 仅显示该对象 只显示当前包。 隐藏该对象 排除当前包。 清除过滤器 清除目前包已有的过滤规则。