当前位置:首页 » 服务存储 » 存储过程测试
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程测试

发布时间: 2022-01-21 21:00:36

1. oracle 测试存储过程 是哪个权限

Oracle规定,在默认的情况下,在调用存储过程用户的角色不起作用,即在执行存储过程时只有Public权限。所以在调用Create table时,会有权限不足的提示。
只需要使用IR Procere就能很快解决问题啦,把代码修改为如下:

CREATE OR REPLACE PROCEDURE TestProc AUTHID current_user
IS
flag number;
BEGIN
select count(*) into flag from all_tables where table_name='TEMP3';
if (flag=0) then
execute immediate 'create global temporary table TEMP3 on commit preserve rows as select * from BUSI_ECONTRACT';
else
execute immediate 'insert into TEMP3 select * from BUSI_ECONTRACT';
end if;

END ;
执行存储过程,顺利通过。

2. 如何oracle调试存储过程

oracle存储过程调试方法

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;或鼠标点中该行的行号边缘

--引用自网页链接

3. 如何调试存储过程和package

1.打开PL/SQL Developer
如果在机器上安装了PL/SQL Developer的话,打开PL/SQL Developer界面
输入用户名,密码和host名字,这个跟在程序中web.config中配置的完全相同,点击确定
找到需要调试的存储过程所在的包(Package bodies),如PACK_ACTIVITY,点击右键,在弹出菜单中选择[查看],得到包中的所有存储过程和他们的代码.
2.添加debug信息
为了能够单步跟踪存储过程,需要为其所在的包添加debug信息,右键点击需要调试的包,在弹出菜单中选中[添加调试信息].
这样就为包体添加了调试信息。
3.调试存储过程
现在所有的准备工作都做好了,可以调试跟踪存储过程了。
选择需要调试的存储过程,点击右键,在弹出菜单中选择[测试],进去测试窗口. 测试窗口中有为了测试该存储过程自动所产生的代码,当然你也可以自己另外加入和修改代码,对于我们目前只是为了调试存储过程,自动生成的代码已经足够了。接着按照如下的步骤进行调试。
(1)添加存储过程所需要的参数,我们项目中的大多数存储过程都是需要参数的,参数可以在测试窗口右下部分输入。
如:GetPanNO_New需要一个输入参数v_employeeid,我们输入180,输出参数是mycursor,是查看结果的,不需要输入任何值。
(2)开始调试,点击[调试]菜单-[开始](或者按F9),就进去调试模式了,程序开始停在begin这一行.
(3)以后的调试过程跟我们熟悉的的调试过程就一样了:
运行(Ctrl+R)
单步进入(Ctrl+N)
单步跳过(Ctrl+O)
单步退出(Ctrl+T)
或者点击debug工具条上的按扭: 当按Ctrl+N进去存储过程的源代码中后
在这个窗口中可以查看过程中的变量值和堆栈。
(4)调试运行完了后,可以查看结果如下(点击mycursor变量旁边的按钮).

4. 如何在PLSQL中测试我自己写的存储过程

1、所谓的存储过程,它的意义就是在服务器上运行的SQL代码。可以通过PL SQL联接服务器来进行调试。
2、PL SQL联接服务器后,找到相应的存储过程,点右键点运行即可进行测试,会弹出对话让你填入需要代入的参数。
3、如果服务器上还没有建立相关存储过程,你要做的当然是使用SQL语句先进行建立。

5. 存储过程 如何调试

最简单 先在查询器里面调试 。完全正确了 才写成存储过程!

6. 这个存储过程如何测试

CREATE PROCEDURE [dbo].[Test]
@TableName char(10),
@TableValue bigint
AS
DECLARE @sql nvarchar(4000)
BEGIN
SET NOCOUNT ON;
--如果TableName表存在则插入一条TableValue
SET @sql=
N'if exists
(select * from sysobjects
where id = object_id(N''[dbo].['+@TableName+']'')
and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
INSERT INTO '+@TableName+'(TableValue) VALUES(cast('+@TableValue+') as nvarchar(20))'
EXEC sp_executesql @sql,N'@TableName char(10),@TableValue bigint',
@TableName,@TableValue
END

7. PL/SQL中测试存储过程,如何立即输出DBMS_OUTPUT的语句。

要想立即输出就把过程分开一个一个调用。
这样一起调用的匿名块,肯定要等程序执行完才一起输出。

8. sql server测试存储过程

你没必要定义output类型,因为最后的select语句已经把你要的结果输出了
除了实际运行看数据,别的也没什么号验证的了,如果语法不对,创建时就失败了
exec Get_operator @Czy_code=‘code’,@Czy_password='pwd'
执行以下看结果喽
另外查询里面没必要用事务,可以去掉transaction

9. 存储过程的测试一直在执行,关不掉

1、存储过程中是否有 LOOP ?
如果有 的在end loop 添加 EXIT WHEN 游标名%NOTFOUND (意思是如果没有这个游标,就跳出)
2、没有loop 的话
手动停止掉当前的存储过程吧。语句如下:
--先查运行的存储过程sid
select /*rule*/ sid from v$access where object='存储过程名'
--通过sid 找到serial
select sid ,serial#,paddr from v$session where sid='上一句查到的sid'
--kill 掉存储过程
alter system kill session 'sid','serial#'

10. 存储过程并行测试,如何并发测试

这个问题一般是数据锁造成的,INSERT的时候一般不会遇到这种问题,你在A或者B存储过程中查看一下,一定有UPDATE语句或者 SELECT FOR UPDATE语句,两个并发的请求同时锁一条记录就会造成一条成功另一条失败。
不过按照你的描述最大的可能性是另外一种情况,就是两次INSERT插入的数据某个字段是相同的值,好死不死的,这个相同值的字段又设置了唯一索引或者约束,那么当第一条记录插入成功后第二条记录就会必然失败回滚。