如何调试oracle程序,oracle存储过程如何调试

oracle的存储过程怎么调试

方法/步骤

我们提供的服务有:网站建设、网站制作、微信公众号开发、网站优化、网站认证、诏安ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的诏安网站制作公司

首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过。

找到想要调试的存过,左键单击选中该存过(图中位置1),然后右键单击该存过,从弹出菜单中选择“Test”项(图中位置2)。

单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参数即可。

填写完参数,单击开始调试按钮后,调试的界面会发生一些变化。图中位置1的变化,说明存过已经处于执行状态,别人不能再编译或者执行。位置2的按钮就是执行按钮,单击这个按钮存过会执行完成或者遇到bug跳出,否则是不会停下来的,调试时不会用这个按钮的。位置3的按钮才是关键——单步执行,就是让代码一行一行的执行,位置4的按钮是跳出单步执行,等待下一个指令。

单击“单步执行”,存过开始单步执行。界面中每一次执行的代码会高亮显示(图中位置1),如果想要看某个变量具体的值,就在位置2的地方输入该变量名,然后变量的值会显示在位置3的地方。

调试的时候,每一次单步执行的时候要记一下执行代码的行数,图中位置3的数字就是当前执行代码的行数,就是第几行。如果过程单步执行到某行后,再单步执行的时候,存过就退出,那么错误就在该行的下一行。

代码执行到24行,在往下执行时,直接转到exception的地方,也就是异常处理的部分。

这说明我们代码中的错误在24和25行上,我们打开存过,浏览到24行和25行附近,发现25行和24行使用了两个变量,记住那两个变量。重新开始调试过程。

单步的执行时候把刚才那两个变量名填写到变量查看框,一边观察变量值变化,一边单步执行,执行到24行的时候,发现一个变量已经有值了,而另一个变量的值为null。错误原因明朗了吧?就是变量没有赋值或者初始话,给该变量赋值后存过就不报错了。

如何运行和调试Oracle存储过程

1.

编写Oracle存储过程脚步如下:CREATE

OR

REPLACE

PROCEDURE

P_AUTO_CREATE_PARTITION

(Result

Out

int,

LogErrDesc

Out

varchar2

)

is

type

TypeTable

is

table

of

varchar2(20);

CreatePartitionErr

exception;

days

TypeTable;

BEGIN

Result

:=

0;

SELECT

DATETIME

bulk

collect

into

days

FROM

(

SELECT

TO_CHAR(TRUNC(SYSDATE-2,'dd'),'YYYYMMDD')

AS

DATETIME

FROM

DUAL

UNION

SELECT

TO_CHAR(TRUNC(SYSDATE-1,'dd'),'YYYYMMDD')

AS

DATETIME

FROM

DUAL

UNION

SELECT

TO_CHAR(TRUNC(SYSDATE,'dd'),'YYYYMMDD')

AS

DATETIME

FROM

DUAL

UNION

SELECT

TO_CHAR(TRUNC(SYSDATE+1,'dd'),'YYYYMMDD')

AS

DATETIME

FROM

DUAL

UNION

SELECT

TO_CHAR(TRUNC(SYSDATE+2,'dd'),'YYYYMMDD')

AS

DATETIME

FROM

DUAL

);

for

i

in

1..days.count

loop

if

bruce_partiton.CreatePartitions('T_CDT_1X_BASIC_Partion',days(i))0

then

raise

CreatePartitionErr;

end

if;

end

loop;

--名字写错了bruce_partiton,应该为bruce_partition

commit;

--异常处理

EXCEPTION

WHEN

CreatePartitionErr

THEN

rollback;

Result

:=

-1;

LogErrDesc

:=

SQLERRM;

commit;

RETURN;

WHEN

OTHERS

THEN

rollback;

Result

:=

-2;

LogErrDesc

:=

'CDM_CTCALLTRACEINFO_PRC_NEW

Fail!'||substr(dbms_utility.format_error_stack,1,200);

commit;

RETURN;

END

P_AUTO_CREATE_PARTITION;

/

2.

调试

在PL/SQL中选择存储过程,右键TEST,

ADD

DEBUGINFO,3.

运行,在Program

Window中

oracle plsql怎么调试存储过程

1、首先是编写存储过程,编译无误;

2、添加debug信息。为了能够单步跟踪存储过程,需要为其所在的包添加debug信息,右键点击需要调试的存储过程名称,在弹出菜单中选中[add debug information],这样就为包体添加了调试信息;

3、选择需要调试的存储过程名称,点击右键,在弹出菜单中 选择[Test],进去测试窗口,测试窗口中有为了测试该存储过程自动所产生的代码,当然你也可以自己另外加入和修改代码,自动生成的代码已经足够了。

oracle10g的存储过程大概怎么调试

PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的预编译与测试。

点击要调试的存储过程,右键选择TEST

如果需要查看变量,当然调试都需要。在右键菜单中选择Add

debug

information.

start

debugger(F9)开始我们的测试,Run(Ctrl+R)

随时在varible

List中输入我们想查看的变量

其它:

Step

into(Ctrl+N):单步调试,进入下一步

Step

over(Ctrl+O):结束该语句

Step

out(Ctrl+T):跳出该过程

Run

to

next

exception:进入下一个断点Breakpoint

Toggle

Breakpoint设置断点:光标指向一行,Ctrl+B;或鼠标点中该行的行号边缘

======================================

1.在要调试的过程上单击

test

,如下图所示:

2.出现如下界面时单击最左上方的按钮,如下图所示:

3.单击后呈现如下画面:

其中:表示要停止test;表示要全部运行完这个过程。单击它后你就不能单步调试了。

单步调试。单击它后可以像在exlipse或者visal

stidio里面一样对程序进行单步调试了。

4.单击“单步调试”按钮。出现如下画面:

这个时候表示你进入了调试状态,你可以单击上面说的任何按钮来控制程序,如下:

表示要停止test,不再调试了;表示要全部运行完这个过程,不再进行单步调试了。

单步调试,表示要一步一步的调试这个程序要想单步调试这个程序,只需要你用鼠标左键连续单击这个按钮即可。

5.断点的使用。

可以使用断点,方法是在文本区域最左侧的边框进行左键单击,如下:

这个时候单击:这个按钮,就可以直接运行到这个位置了,示意图如下:

这个时候再单击,进行一步步的调试。

注意:当你忘记了设置断点,而进入一个非常大的循环时,没有关系,你可以打开这个过程在相应处设置断点,然后单击就可以了。步骤如下:

a.忘了设断点了,但是我进入了非常大的循环单步调试很难退出时:这个时候需要打开这个过程,如下:

b.你需要设置断点的地方左键单击即可,如下图:

c.单击就直接运行到你设置的这个断点的地方了。

5.对监控窗口的使用:

这个窗口可以把你要监视的变量进行显示,你把你需要监视的变量复制到这个窗口就可以了。这个窗口在调试界面的最下方,如下示:

这个sql_str

就是要被监视的对象。

6.继续单步调试:可以看到,这个变量被赋值了。如下图所示:

把它复制出来,在新建的slq

window里运行,就可以看到执行结果了。如下图所示:

7.分析每一步的执行结果。

8.继续单步运行,继续分析,直到知道为什么没有产生想要的结果为止。


当前题目:如何调试oracle程序,oracle存储过程如何调试
当前地址:http://pwwzsj.com/article/hcpohi.html