Bind Variable "cursorMemoria" is NOT DECLARED

hello,

I have the next example:

create or replace procedure listaEmpleados(cursorMemoria OUT SYS_REFCURSOR)
as
BEGIN
open CURSORMEMORIA for select * from HR.EMPLOYEES;
DBMS_OUTPUT.ENABLE(1000000);
END;

set AUTOPRINT on;

VARIABLE cursorMemoria SYS_REFCURSOR;
EXECUTE listaEmpleados(:cursorMemoria);

But I have the Bind Variable “cursorMemoria” is NOT DECLARED. Please could you help me. Thank you.

Usage: VAR[IABLE] [ [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |

VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR |
BINARY_FLOAT | BINARY_DOUBLE ] ]

Bind Variable “cursorMemoria” is NOT DECLARED
anonymous block completed

Try this. This is working

create or replace procedure listaEmpleados(cursorMemoria OUT SYS_REFCURSOR)
as
BEGIN
open CURSORMEMORIA for select * from EMPLOYEES;
DBMS_OUTPUT.ENABLE(1000000);
END;

set AUTOPRINT on;

set echo on;

DECLARE
cursorMemoria SYS_REFCURSOR;
BEGIN
listaEmpleados(cursorMemoria);
END;
/

Hi Antoine_mc1,

This line:

VARIABLE cursorMemoria SYS_REFCURSOR;

should be this:

VARIABLE cursorMemoria REFCURSOR;

You have the wrong variable type because when I try typing in your example code, I get this:

SQL> var badList sys_refcursor;

Usage: VAR[IABLE] [ [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE
REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ]

But it works fine with just REFCURSOR.