Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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; 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_LANCACONTASAUTOMATICASOn line: 16
PLS-00103: Encontrado o símbolo "SELECT" quando um dos seguintes símbolos era esperado:
( - + case mod new not null others <um identificador>
<um identificador delimitado por aspas duplas>
<uma variável de ligação> avg count current exists max min
prior sql stddev sum variance execute forall merge time
timestamp interval date
<um literal de string com especificação de conjunto de caracteres>
<um número> <uma string SQL com aspas simples> pipe
<um literal de string alternativamente
Onde eu estou errando? Valeu galera, desde já qualquer ajuda será bemvinda,
[]'s.
Carregando comentários...