我正在研究 PLSQL 中的单元测试。我建立了一个测试数据库,其中包含一些带有函数和过程的表和包。目前,我正在尝试测试框架“utPLSQL”,但在对 ref 游标进行测试时偶然发现了一个错误。我可以运行我的所有测试,但是 ref 游标上的测试结果显示“ora-01031 权限不足”,这就是我所得到的。我怎样才能找到这个错误的来源?或者有没有人遇到过同样的问题?utPLSQL 安装成功,测试框架的所有其他功能都可以正常工作。
这是我要测试的过程:
FUNCTION F_Get_Customers_RefCurs(P_LASTNAME IN VARCHAR2)
RETURN cust_refcur
IS
cust_result cust_refcur;
BEGIN
OPEN cust_result FOR
SELECT *
FROM CUSTOMERS
WHERE LASTNAME = P_LASTNAME
ORDER BY email ASC;
return(cust_result);
END F_Get_Customers_RefCurs;
我在包含我的函数的包的规范中声明了 cust_refcur,如下所示:
TYPE cust_refcur IS REF CURSOR;
这是测试:
PROCEDURE ut_F_Get_Customers_RefCurs
IS
params utplsql_util.utplsql_params;
BEGIN
utPLSQL_Util.reg_In_Param (1,
'Tester',
params);
UTASSERT.eq_refc_query ('Get customers on last name is successful (refcursor)',
'PK_ORDERS.F_GET_CUSTOMERS_REFCURS',
params,
0,
'SELECT customerid, firstname, lastname, email, password
FROM CUSTOMERS
WHERE LASTNAME = ''Tester''
ORDER BY email ASC');
END;