REVELAR

Fórum problema ao executar procedure... #56327

26/06/2006

0

Estou criando uma procedure em um campo especial está dando problema quando a executo.

Gostaria da ajudar de vocês. Estou utilizando o firebird e ibexpert.
Estou postando abaixo o script, o campo que está dando problema é na linha em que estou extraindo o ´ANO´ no select e quando insiro o valor na linha INTO.

CREATE PROCEDURE MEMBROSDIZIMOS_RELATORIO2 (
CODIGREJA_IN INTEGER,
ANO_IN INTEGER,
CODGRUPOSASSISTENCIA_IN INTEGER,
CODCLASSES_IN INTEGER,
CODOCUPACOES_IN INTEGER)
RETURNS (
NOME_MEMBROS VARCHAR(50),
NOME_IGREJAS VARCHAR(50),
DATA DATE,
CODIGO INTEGER,
CODIGREJA INTEGER,
CODMEMBRO INTEGER,
DT_INSCRICAO DATE,
DT_ALTERACAO DATE,
VALOR NUMERIC(15,2),
CODTIPOSPAGAMENTOS INTEGER,
OBSERVACOES VARCHAR(50),
CHQ_BANCO VARCHAR(3),
CHQ_AGENCIA VARCHAR(5),
CHQ_NUMERO VARCHAR(10),
CHQ_CONTACORRENTE VARCHAR(10),
CAR_NUMERO VARCHAR(10),
TIPO_TIPOSPAGAMENTOS VARCHAR(30),
CHEQUE_TIPOSPAGAMENTOS CHAR(1),
CARTAO_TIPOSPAGAMENTOS CHAR(1),
ANO INTEGER,
MES INTEGER,
DIA INTEGER)
AS
DECLARE VARIABLE SCRIPTY VARCHAR(2500);
BEGIN
scripty = ´SELECT MD.CODIGO,
MD.CODIGREJA,
MD.CODMEMBRO,
MD.DT_INSCRICAO,
MD.DT_ALTERACAO,
MD.DATA,
MD.VALOR,
MD.CODTIPOSPAGAMENTOS,
MD.OBSERVACOES,
MD.CHQ_BANCO,
MD.CHQ_AGENCIA,
MD.CHQ_NUMERO,
MD.CHQ_CONTACORRENTE,
MD.CAR_NUMERO ,
TP.TIPO AS TIPO_TIPOSPAGAMENTOS,
TP.CHEQUE AS CHEQUE_TIPOSPAGAMENTOS,
TP.CARTAO AS CARTAO_TIPOSPAGAMENTOS,
M.NOME AS NOME_MEMBROS,
I.NOME AS NOME_IGREJAS,
(extract(year from MD.DATA)) AS ANO ´;/*,
extract(month from MD.DATA) AS MES,
extract(day from MD.DATA) AS DIA */
scripty = scripty || ´FROM MEMBROSDIZIMOS MD
INNER JOIN IGREJAS I ON (MD.CODIGREJA = I.CODIGO)
INNER JOIN MEMBROS M ON (MD.CODMEMBRO = M.CODIGO)
LEFT OUTER JOIN TIPOSPAGAMENTOS TP ON (MD.CODTIPOSPAGAMENTOS = TP.CODIGO) ´;
/*
if (CODIGREJA_IN is not null) then
scripty = scripty || ´WHERE (MD.CODIGREJA = ´ || :CODIGREJA_IN ||´) ´;
else
scripty = scripty || ´WHERE (MD.CODIGREJA is not null ) ´;

if (ANO_IN is not null) then
scripty = scripty || ´AND (extract(year from MD.DATA) =´ || :ANO_IN ||´) ´;

if (CODGRUPOSASSISTENCIA_IN is not null) then
scripty = scripty || ´AND (M.CODGRUPOSASSISTENCIA = ´ || :CODGRUPOSASSISTENCIA_IN || ´) ´;

if (CODCLASSES_IN is not null) then
scripty = scripty || ´AND (M.CODCLASSES = ´ || :CODCLASSES_IN || ´) ´;

if (CODOCUPACOES_IN is not null) then
scripty = scripty || ´AND (M.CODOCUPACOES = ´ || :CODOCUPACOES_IN || ´) ´;
*/
scripty = scripty ||
´ORDER BY I.NOME,
extract(year from MD.DATA) ASC,
extract(month from MD.DATA) ASC,
extract(day from MD.DATA) ASC,
M.NOME ´;

for execute statement scripty
INTO :CODIGO,
:CODIGREJA,
:CODMEMBRO,
:DT_INSCRICAO,
:DT_ALTERACAO,
:DATA,
:VALOR,
:CODTIPOSPAGAMENTOS,
:OBSERVACOES,
:CHQ_BANCO,
:CHQ_AGENCIA,
:CHQ_NUMERO,
:CHQ_CONTACORRENTE,
:CAR_NUMERO,
:TIPO_TIPOSPAGAMENTOS,
:CHEQUE_TIPOSPAGAMENTOS,
:CARTAO_TIPOSPAGAMENTOS,
:NOME_MEMBROS,
:NOME_IGREJAS,
:ANO/*,
:MES,
:DIA */
DO
BEGIN
SUSPEND;
END
END^



erro que está dando quando eu executo é o seguinte:

Unsucessful execution caused by an unavaiblle resource.
Variable type(position 19) in EXECUTE STATEMENT....


Thiagopedro

Thiagopedro

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar