如何在pl/sql developer 编译脚本执行时自动添加Debug 信息

[复制链接]
查看11 | 回复7 | 2006-9-7 17:09:08 | 显示全部楼层 |阅读模式
在pl/sql developer中的program window编辑pl/sql程序时,点击编译按钮编译的程序,可以在Debug中看见Debug信息。
但如果在Command Window中使用@符号调用脚本文件进行编译时,则无法自动添加Debug信息,请问是什么原因,有什么办法可以解决?
我的编译过程:打开Command window,输入'@d:\proc.prc;'后执行编译,proc.prc是一个文本文件,和program window编辑pl/sql时的内容完全一样。
另外,add debug information when compiling选项已经选中。
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
最初由 bluemasker 发布
[B]在pl/sql developer中的program window编辑pl/sql程序时,点击编译按钮编译的程序,可以在Debug中看见Debug信息。
但如果在Command Window中使用@符号调用脚本文件进行编译时,则无法自动添加Debug信息,请问是什么原因,有什么办法可以解决?
我的编译过程:打开Command window,输入'@d:\proc.prc;'后执行编译,proc.prc是一个文本文件,和program window编辑pl/sql时的内容完全一样。
另外,add debug information when compiling选项已经选中。 [/B]

调用的脚本文件中的最后加上show errors,
如果文件中有多个存储过程, 则在每个存储过程执行结束后加上show errors
或是在文件最后写上多句 show errors.
记得指明对象类型和名字
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
不行啊, 请jackywood帮我看看什么地方做的不对。
假定我的pl/sql脚本(文件名是p_charReplace.prc)内容是:

create or replace procedure p_chrReplace(pa_string in out char,

pa_BegPos in number,

pa_length in number,

pa_toChar in char) is
v_InStrLength integer;
begin
v_InStrLength := lengthb(pa_string);
if v_InStrLength@D:\charReplace.PRC;
Procedure created
SQL> show errors;
No errors for PROCEDURE USER_ONE.CHARREPLACE

然后我在test Windows单步执行时我把鼠标移动到变量上时,显示"(No debug information)",还是不能显示变量值啊!
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
[php]
//直接
SQL> create or replace procedure text is
2begin
3dbms_output.put_lind('d');
4end text;
5/
警告: 建立的程序含有編譯錯誤.
目前歷時: 00:00:00.00
SQL> show errors
PROCEDURE TEXT 發生錯誤:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/3PL/SQL: Statement ignored
3/15 PLS-00302: 必須宣告成份 'PUT_LIND'
//調用
SQL> host type text.prc
create or replace procedure text is
begin
dbms_output.put_lind('d');
end text;
/
SQL> @text.prc
警告: 建立的程序含有編譯錯誤.
目前歷時: 00:00:00.00
SQL> show errors
PROCEDURE TEXT 發生錯誤:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/3PL/SQL: Statement ignored
3/15 PLS-00302: 必須宣告成份 'PUT_LIND'
SQL>
----------------------
[/php]
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
最初由 bluemasker 发布
[B]不行啊, 请jackywood帮我看看什么地方做的不对。
...
我在Command Window中执行过程如下:
SQL> @D:\charReplace.PRC;
Procedure created
SQL> show errors;
No errors for PROCEDURE USER_ONE.CHARREPLACE

然后我在test Windows单步执行时我把鼠标移动到变量上时,显示"(No debug information)",还是不能显示变量值啊! [/B]

test window中是调试, 不是编译, show errors是直接显示编译错误信息的, 和test window中的调试没什么关系
至于你的 No debug information 我就不清楚具体原因是什么
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
要想单步跟踪、查看变量值、设置断点等,请查看PL/SQL DEVELOPER的help文件,写的非常详细,网上有中文的,找找吧
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
看来只能手工加了
回复

使用道具 举报

千问 | 2006-9-7 17:09:08 | 显示全部楼层
把语句
alter procedure procedure_name compile ;
改称
alter procedure procedure_name compile debug;
应该就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行