PL SQL Проблема для проверки, если курсор ISOPEN - PullRequest
0 голосов
/ 19 марта 2020

Чего я пытаюсь добиться - это проверить, открыт ли курсор или нет, в качестве меры предосторожности, но я всегда получаю эту ошибку. Любая помощь будет высоко ценится.

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;
/

Ответы [ 2 ]

3 голосов
/ 19 марта 2020

Вы объявили курсор с помощью ввода Argument.

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

Находясь в блоке Begin, вы не передаете курсор какому-либо аргументу.

 OPEN wrote_cur; --<-- Here..

передаете аргумент как :

 OPEN wrote_cur(1);
0 голосов
/ 19 марта 2020

Ошибка: забыл передать аргумент

  IF NOT wrote_cur%ISOPEN THEN
    OPEN wrote_cur (v_author_ID);
  END IF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...