[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