[firebase-br] Variavel Blob na Stored Procedure

Renato Miranda renato.smiranda em gmail.com
Sáb Out 27 07:50:13 -03 2007


Marcelo, tudo bem ?

Veja o código a seguir:

create table blah (
    id     integer not null,
    data1  varchar(10),
    data2  varchar(22),
    data3  varchar(34),
    data4  varchar(46),
    amemo  blob sub_type 1 segment size 80
);


SET TERM ^ ;

CREATE OR ALTER PROCEDURE MAKE_BLOB (
    id integer,
    data1 varchar(10),
    data2 varchar(22),
    data3 varchar(34),
    data4 varchar(46),
    lf varchar(2))                       /* isto é um "CR/LF" para separar,
ou não, as linhas num memo */
as
declare variable blobstring varchar(125) = '';
begin
  if (data1 is null) then data1 = 'Data1';
  if (data1 is null) then data1 = 'Data2';
  if (data1 is null) then data1 = 'Data3';
  if (data1 is null) then data1 = 'Data4';
  blobstring = data1 || lf || data2 || lf  || data3 || lf  || data4;
  if (id is not null) then
    update blah set amemo = :blobstring
    where id = :id;
  else
    insert into blah(data1, data2, data3, data4, amemo)
    values( :data1, :data2, :data3, :data4, :blobstring);
end^

SET TERM ; ^

Essas linhas fazem parte de em pequeno exemplo postado pela Sra. Helen
Borrie numa lista sobre IBO. A intenção é demonstrar o preenchimento de um
campo blob via stored procedure.

Não sei se é bem isso o que você precisa, mas espero que lhe dê algumas
idéias,


-- 
Abraços,

RMiranda

Em 25/10/07, Marcelo Moreira <marcelo em easysistemasmg.com.br> escreveu:
>
> Pessoal,
>
> Boa tarde!
>
>
>
> Veja o DDL da SP que eu estou testando:
>
>
>
> SET TERM ^ ;
>
>
>
> CREATE PROCEDURE NEW_PROCEDURE_TESTE
>
> AS
>
> DECLARE VARIABLE TESTE BLOB SUB_TYPE 1 SEGMENT SIZE 150;
>
> begin
>
>   /* Procedure Text */
>
>   TESTE = 'TESTANDO';
>
>   suspend;
>
> end^
>
>
>
> SET TERM ; ^
>
>
>
> GRANT EXECUTE ON PROCEDURE NEW_PROCEDURE_TESTE TO SYSDBA;
>
>
>
> Ai eu tento chama-la assim:
>
>
>
> execute procedure NEW_PROCEDURE_TESTE
>
>
>
> Ai aparece o seguinte erro:
>
>
>
> Unsuccessful execution caused by a system error that precludes
>
> successful execution of subsequent statements.
>
> internal error.
>
>
>
> O que eu preciso é passar um valor direto para a variável que no caso é do
> tipo Blob, alguém sabe o que pode estar acontecendo? O que eu quero fazer
> não é permitido?
>
>
>
> Obrigado pela atenção!
>
> Abraços
>
>
>
> Marcelo Moreira
>
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.503 / Virus Database: 269.15.9/1084 - Release Date:
> 24/10/2007
> 00:00
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista