首页 > 解决方案 > 检查游标 ISOPEN 的 PLSQL 问题

问题描述

我想要实现的是检查光标是否打开作为安全预防措施,但我总是收到此错误。任何形式的帮助将不胜感激。

LINE/COL ERROR
-------- -----------------------------------------------------------------
29/5     PL/SQL: SQL Statement ignored
29/5     PLS-00306: wrong number or types of arguments in call to
         'WROTE_CUR'

CREATE OR REPLACE PROCEDURE print_publication (p_name CHAR) AS

CURSOR wrote_cur (v_AID NUMBER) IS
 SELECT AID,PUBID FROM wrote WHERE AID = v_AID;

 v_wrote_rec wrote_cur%ROWTYPE;

BEGIN

IF NOT wrote_cur%ISOPEN THEN
OPEN wrote_cur;
END IF;


 CLOSE wrote_cur;

END;
/

标签: oraclestored-proceduresplsql

解决方案


你用 input 声明了 cursor Argument

CURSOR wrote_cur (v_AID NUMBER) IS --<-- Cursor is expecting argument at runtime

在 Begin 块中,您没有将任何参数传递给游标。

 OPEN wrote_cur; --<-- Here..

像这样传递参数:

 OPEN wrote_cur(1);

推荐阅读