Ajuda criação de cursor - Oracle

Bom dia,

Preciso criar um cursor para que seja criado grants entre duas tabelas.
Foi me passado um esboço, porém, estou com dificuldades para compreender e fazer o devido cursor.
Segue abaixo :

DECLARE
/*
Alterar as variáveis:
SCHEMA_SUFIX: Preencher com o dono do objeto, somente o sufixo DATA, DATA_INT, CONFIG e etc; Se for o esquema principal, deixe vazio;
GRANT_PRIVILEGES: Quais privilegios ceder (ALL, EXECUTE, SELECT e etc);
TABLE_NAME: Nome do objeto;
*/

SCHEMA_SUFIX VARCHAR2(50) := ‘DATA’;
GRANT_PRIVILEGES VARCHAR2(50) := ‘ALL’;
OBJECT_GRANTED VARCHAR2(50) := ‘TESTES’;

/*
Não alterar as variáveis:
SCHEMA_PREFIX: Irá pegar dinamicamente o valor do prefixo;
*/

SCHEMA_PREFIX VARCHAR2(50) := ‘BANCO’;

BEGIN

DECLARE

/* DECLARANDO O CURSOR DE EMPLOYEES */

CURSOR C_EMP IS

SELECT regexp_substr(tabelas, separador, 1, LEVEL) tabelas

FROM (SELECT 'Tabela_numero1, Tabela_numero2 tabelas, ‘[^;]+’ separador FROM dual)

CONNECT BY regexp_substr(tabelas, separador, 1, LEVEL) IS NOT NULL;

/* DECLARANDO A VARIAVEL QUE RECEBERÁ OS REGISTROS DA TABELA */

R_EMP C_EMP%ROWTYPE;

BEGIN

/* ABRE CURSOR */

OPEN C_EMP;

LOOP

/* LÊ UM REGISTRO DO CURSOR */

FETCH C_EMP

INTO R_EMP;

/* SAI DO LOOP CASO SEJA O FINAL DO CURSOR */

EXIT WHEN C_EMP%NOTFOUND;

IF SCHEMA_SUFIX IS NULL THEN

EXECUTE IMMEDIATE 'GRANT ' || GRANT_PRIVILEGES || ' ON ' || OBJECT_GRANTED || ' TO ' || SCHEMA_PREFIX;

ELSE

EXECUTE IMMEDIATE 'GRANT ' || GRANT_PRIVILEGES || ' ON ' || OBJECT_GRANTED || ' TO ' || SCHEMA_PREFIX || '_' || SCHEMA_SUFIX;

END IF;

END LOOP;

/* FECHA O CURSOR */

CLOSE C_EMP;

END;
/