Olá Pessoal, não tenho muita experiência em procedures no Oracle, estou tentando criar esse procedure;
CREATE OR REPLACE PROCEDURE PRC_LANCACONTASAUTOMATICAS IS
VPROXIMOMES CHAR(7);
VDATAVENCIMENTO DATE;
VNUMDOC INTEGER;
BEGIN
/* SQL QUE VAI LANCAR AS CONTAS DE LANCAMENTO AUTOMATICO
CRIADAS NO PLANO DE CONTAS */
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'MM/YYYY') INTO VPROXIMOMES FROM DUAL;
FOR R IN (SELECT CODPLANOCONTAPAGAR, DESCRICAO, CONTAPERSISTENTE, DIAVENCIMENTO,
NUMDIASANTECEDENCIA, STATUS, VALORCONTAPERSISTENTE
FROM TBPLANOCONTASPAGAR WHERE ((TO_DATE(DIAVENCIMENTO||'/'||VPROXIMOMES) - SYSDATE) <= NUMDIASANTECEDENCIA) AND
(CONTAPERSISTENTE = 1) AND (ROWNUM < NUM_ROWS+1))
LOOP
VDATAVENCIMENTO := TO_DATE(DIAVENCIMENTO||'/'||VPROXIMOMES);
VNUMDOC := (SELECT (MAX(NUMDOC) + 1) FROM TBCONTASPAGAR WHERE CODPLANOCONTAPAGAR = R.CODPLANOCONTAPAGAR);
INSERT INTO TBCONTASPAGAR (CODPLANOCONTAPAGAR, DATAVENCIMENTO, DATALANCAMENTO, DATAEMISSAO,
VALOR, NUMDOC, DESCRICAO) VALUES
(R.CODPLANOCONTAPAGAR, VDATAVENCIMENTO, R.DATALANCAMENTO, SYSDATE, R.VALORCONTAPERSISTENTE, VNUMDOC, R.DESCRICAO);
END LOOP;
END PRC_LANCACONTASAUTOMATICAS;
/
Mas tá dando o seguinte erro ao tentar compilar;
PROCEDURE MHI_CONTROLEGERENCIAL.PRC_LANCACONTASAUTOMATICAS
On line: 16
PLS-00103: Encontrado o símbolo "SELECT" quando um dos seguintes símbolos era esperado:
( - + case mod new not null others
avg count current exists max min
prior sql stddev sum variance execute forall merge time
timestamp interval date
pipe
Onde eu estou errando? Valeu galera, desde já qualquer ajuda será bemvinda,
[]'s.