【问题标题】:Unit Testing Oracle Stored Procedure with Visual Studio 2010使用 Visual Studio 2010 对 Oracle 存储过程进行单元测试
【发布时间】:2011-11-15 22:35:03
【问题描述】:

我使用 Visual Studio 2010 为一些返回多行的存储过程创建数据库单元测试。在 SQL Server 中这很简单,我只执行了存储过程 (EXEC MyProcedure 9999) 并自动返回了行,因此我可以使用测试设计器检查结果集。

现在我正在尝试为 Oracle 编写相同的测试;但是,Oracle 存储过程使用游标输出参数来返回结果。例如,存储过程的签名如下所示:

PROCEDURE MyProcedure
(
    v_ItemId   IN NUMBER,
    io_cursor  IN OUT t_cursor
) AS...

因为它需要一个游标作为参数,所以我需要在我的测试中声明一个。查看有关此主题的其他问题,我能够创建以下内容:

DECLARE
   refcsr  SYS_REFCURSOR;
BEGIN
   MyProcedure (9999, refcsr); 
END;

我知道 refcsr 包含我的结果,但我的问题是如何使光标的内容作为结果集对 Visual Studio 测试框架可见?

【问题讨论】:

    标签: oracle unit-testing


    【解决方案1】:

    类似的东西

    variable x refcursor
    exec MyProcedure(9999, :x)
    print x
    

    【讨论】:

    • 这可能是我完全不了解 Oracle,但我已经尝试过了,但我永远无法让 Oracle 接受语法。以第一行为例,variable x refcursor 给我 'ORA-00900: invalid SQL statement'。
    • 以上需要在sqlplus中运行。我假设您想将其作为单元测试运行。 SQL 脚本最适合此任务。
    • 我正在使用 Visual Studio 中的单元测试框架,它通过 ODP.NET 连接到数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多