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;