函数/过程管理
创建函数/过程
- 在“对象浏览器”窗格中,右键单击待创建PL/SQL过程的指定模式下的“函数/过程”,按照要求选择“创建函数”、“创建SQL函数”、“创建过程”或“创建C函数”。
例如右键单击“函数/过程”,弹出如下菜单:
- Data Studio在新页签中显示所选模板。
- 完成添加函数/过程后,可选择“编译”按钮或在页签空白处右键单击选在“编辑”选项编译该函数/过程。
- 编译运行成功后会在“对象浏览器”中显示新函数/过程。
- 过程名称旁的星号(*),表示该过程不被编译或添加到“对象浏览器”。
- 刷新(按下“F5”)后,“对象浏览器”中会显示新添加的调试对象。
- C函数不支持调试操作。
- 弹出消息显示已完成操作的状态。状态栏将不显示此操作的状态。
编辑函数/过程
- 在“对象浏览器”中双击所需过程/函数或SQL函数,或右键单击函数/过程或SQL函数并选择“查看源”。
“PL/SQL Viewer”页签显示所选函数/过程或SQL函数。
- 用户必须刷新“对象浏览器”才能查看最新DDL。
- 拥有相同模式、名称和输入参数的函数/过程或SQL函数一次只能打开一个。
- 编辑或更新后,可以编译并执行该PL/SQL程序或SQL函数。
在编译前若执行函数/过程或SQL函数,会显示一条“改变源代码”的提示。
- 单击“是”,编译并执行PL/SQL函数/过程。“消息”对话框显示已完成操作的状态。
- 编译函数/过程或SQL函数后,刷新“对象浏览器”(按下“F5”)查看更新后信息。
授权/撤销权限
- 右键单击函数/过程组并选择“授权/撤销权限”。弹出“授权/撤销权限”对话框。
- 打开“选择对象”页签,选择待授权/撤销权限的对象,并单击“下一步”。
- 打开“选择权限”页签,从“角色”中选择对应角色,并勾选需要“授予”或“撤销”的权限。
- 在“SQL预览”页签,可以查看根据以上输入自动生成的SQL查询。如发现有不符合预期,可返回上一步修改,直至符合预期。
- 单击“完成”。
调试函数/过程
断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。
- 设置或添加断点
打开需要添加断点的函数/过程,双击行号字段左侧的断点标尺,设置断点,断点标志启用表示操作成功。如果函数在调试过程中不会间断或停止执行,则为其设置的断点未生效。
- 使用“断点”窗格
在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。
在“断点”窗格中,勾选断点复选框,单击“启用”、“禁用”或“移除”按钮,进行断点启用、禁用或者删除操作。也可双击行号字段左侧的断点标尺设置断点;双击断点图标,将断点删除。
在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。
- “断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。
- 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。
- 删除的断点无法恢复。
- 按下“Alt+Y”可复制“断点”窗格内容。
- 修改源代码
调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:建议刷新该对象,再次执行调试操作。
如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。
- 使用断点调试函数/过程
在要调试的行创建断点后,单击“调试”按钮或在“对象浏览器”中右键单击函数,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。
- 如果没有输入参数,则“调试函数/过程”对话框不会弹出。
- 对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。要将参数值设为NULL,需输入NULL或null。
- 调试或执行函数或过程期间,相同参数的值会在下次操作中被直接使用。首次执行时,参数值为空,可根据需要输入参数值。单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。某一连接被删除后,缓存的所有参数值都会被清除。
- 终止调试
在工具栏中单击“终止调试”按钮或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。
调试完成后,“结果”页签中显示函数执行结果,“调用堆栈”和“变量”窗格将被清除。
- Data Studio支持在调试完成后,提交/回滚查询结果。右键单击执行函数的终端窗格,勾选“使用回滚进行调试”启用回滚功能。
- 如果启用了“使用回滚进行调试”选项,则调试后获取的函数执行结果不会保存在数据库中。
- 如果禁用了“使用回滚进行调试”选项,则调试后获取的函数执行结果被提交到数据库中。
控制执行
- 单步调试PL/SQL函数
调试执行函数时,可使用工具栏中的单步调试命令。通过进行单步控制,可逐行调试程序。如果进行单步操作时遇到断点,则该单步操作会停止,程序也会暂停执行。
“单步”是指一次执行一条语句。单步执行一条语句后,可以在其他调试窗口中查看执行结果。
一次最多可以弹出100个“PL/SQL Viewer”页签。如果打开的页签超过100个,则调用函数页签关闭。例如,如果已打开100个页签,且调试对象调用了新调试对象,则Data Studio会关闭调用函数并打开新的调试对象。
- 单步进入
当单步跳入一个函数,Data Studio执行当前语句,然后进入调试模式,调试位置由左侧标尺区域中的箭头表示。如果执行语句调用另一个函数,Data Studio将单步跳入该函数。一旦函数中的所有语句执行完成,Data Studio将跳回其调用函数的下一语句。
单步进入(F7),进入下一语句如果按“继续”,PL/SQL代码执行将继续。
- 单步跳过
单步跳过与单步进入相同,除非调用了另一个函数,否则不会跳入该函数。该函数将运行,进入当前函数中的下一个语句。F8是单步跳过的快捷键。如果该调用函数内设置了断点,单步跳过将进入该函数,并命中该断点。
- 单步退出
子程序单步退出,继续该函数的执行,在该过程返回其调用函数后,暂停执行,确定该函数的剩余部分无需调试后,可单步退出该段函数。然而,如果该函数其余部分设置了断点,在返回调用函数前,该断点将被命中。
单步跳过和单步退出过程都会执行函数。单步退出操作的快捷键是“Shift+F7”。
- 继续执行
- 查看调用堆栈
“调用堆栈”窗格展示调用过程时的过程链。可从最小化窗口窗格中打开“调用堆栈”窗格。最近的过程在顶部,最早的在底部,每个程序名的末尾是该过程的当前行号。
双击“调用堆栈”窗格中的函数名,通过“调用堆栈”窗格在多个函数中导航。
导出函数/过程DDL
可通过右键单击“导出DDL”导出该函数/过程定义。
- 在“对象浏览器”窗格中,右键单击所选函数/过程,选择“导出DDL”。
用户需自定义导出路径。如果需要将数据压缩,勾选“.zip”选项。
“Data Studio安全免责声明”必须勾选“我同意”才可以单击“确定”。用户可关闭安全免责声明,关闭后导出DDL时将不会再出现,详情请参见表1。
- 单击“确定”,右下角的状态栏会显示操作进度。
- 如果文件名包含Windows中文件名不支持的字符,则文件名的名称会与模式名称不同。
- 要执行该操作,需要MS Visual C Runtime文件(msvcrt100.dll)。详情请参阅故障处理。
“导出完成”对话框和状态栏显示已完成操作的状态。
表1 支持导出DDL的编码格式 数据库编码
文件编码
支持导出DDL
UTF-8
UTF-8
是
GBK
是
LATIN1
是
GBK
GBK
是
UTF-8
是
LATIN1
否
LATIN1
LATIN1
是
GBK
否
UTF-8
是
删除函数/过程
可单独或批量删除函数/程序。
- 在“对象浏览器”窗格中右键单击函数/过程对象,选择“删除函数/过程”。
- 选中一个或多个函数/过程对象,选择“删除对象”。
- Data Studio提示确认该操作窗口中,单击“是”完成该操作。
状态栏显示已完成操作的状态。