[firebase-br] Ref. Executar SQL

Sandro Souza escovadordebits em gmail.com
Sex Maio 29 15:42:27 -03 2009


Bom dia/tarde Omar.

Grande Omar, foi besteira minha aquela "dica" do meu email anterior.

Essa stored procedure FU_ALLTRIM remove TODOS os espaços.

Desculpe a bobagem. :D

2009/5/29 Sandro Souza <escovadordebits em gmail.com>

> Bom dia/tarde Omar.
>
> Grande Omar, só é necessário colocar os dois pontos antes dos nomes das
> variáveis nos comandos SQLs.
>
> Vamos refazer essas duas stored procedures:
>
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE FU_ABS(
>   WVAR DOUBLE PRECISION)
>   RETURNS (
>   R_ABS DOUBLE PRECISION)
>   AS
>   begin
>   /*
>   devolve o valor Absoluto de um número.
>   -123,47 ou 123,47 devolve sempre 123,47
>   */
>   if (wvar is not null) then
>   begin
>     if (wvar < 0) then
>       r_abs = wvar * -1;
>     else
>       r_abs = :wvar;
>   end -- if
>   suspend;
> end^
>
> CREATE OR ALTER PROCEDURE FU_ALLTRIM(
>>   WVAR VARCHAR(8192))
>>   RETURNS (
>>   R_ALLTRIM VARCHAR(8192))
>>   AS
>>   DECLARE VARIABLE T SMALLINT;
>>   begin
>>   /*
>>   Devolve um string sem espaços
>>   */
>>   select r_Len from Fu_Len(:wvar) into :t;
>>
>       -- Você já tentou: "t = FU_Len(wvar);" ?
>
>>
>>   r_alltrim = '';
>>
>> while ((wvar is not null) and (t > 0)) do begin
>>   if (substring(wvar from 1 for 1) <> ' ') then
>>   r_alltrim = r_alltrim || substring(wvar from 1 for 1);
>>  wvar = substring(:wvar from 2 for 8191);
>>   t = t - 1;
>>   end -- while
>
> suspend;
>>   end^
>
>
> SET TERM ;  ^
>
> Só uma dica, essa stored procedure FU_ALLTRIM não está removendo os espaços
> excedentes após o final da string.
>
> Espero ter ajudado mais que atrapalhado. :D
>
>
> 2009/5/29 Omar Haddad <omarhaddadm em gmail.com>
>
> Salve srs(as).,
>>
>> Tenho um script com várias sentenças como a debaixo, tentei rodar no SQL
>> monitor ou no Script Executive e resultou em erro.
>>
>>
>>
>>
>>
>> CREATE PROCEDURE FU_ABS(
>>   WVAR DOUBLE PRECISION)
>>   RETURNS (
>>   R_ABS DOUBLE PRECISION)
>>   AS
>>   begin
>>   /*
>>   devolve o valor Absoluto de um número.
>>   -123,47 ou 123,47 devolve sempre 123,47
>>   */
>>   if (:wvar is not null) then begin
>>   if (:wvar < 0.0000) then
>>   r_abs = :wvar * -1;
>>   else
>>   r_abs = :wvar;
>>   end
>>
>> suspend;
>>   end
>>
>> --===================================
>>   CREATE PROCEDURE FU_ALLTRIM(
>>   WVAR VARCHAR(8192))
>>   RETURNS (
>>   R_ALLTRIM VARCHAR(8192))
>>   AS
>>   DECLARE VARIABLE T SMALLINT;
>>   begin
>>   /*
>>   Devolve um string sem espaços
>>   */
>>   select r_Len from Fu_Len(:wvar) into :t;
>>   r_alltrim = '';
>>
>> while ((:wvar is not null) and (:t > 0)) do begin
>>   if (substring(:wvar from 1 for 1) <> ' ') then
>>   r_alltrim = :r_alltrim || substring(:wvar from 1 for 1);
>>
>>  wvar = substring(:wvar from 2 for 8191);
>>   t = :t - 1;
>>   end
>>
>> suspend;
>>   end
>>
>>
>> --
>> Att.
>> Omar Marques Haddad
>> Analista de Sistemas Sênior
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>



Mais detalhes sobre a lista de discussão lista