problema ao executar procedure...
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....
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
Curtidas 0