CAIO.EXE Postado Setembro 24, 2008 Denunciar Share Postado Setembro 24, 2008 Bom dia Senhores,gostaria de saber se há alguma função similar ao REPLACE do SQL no CACHE!obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 13, 2008 Denunciar Share Postado Outubro 13, 2008 gostaria de saber se há alguma função similar ao REPLACE do SQL no CACHE!CAIO.EXE, pelo que é possível verificar no Caché SQL Reference, não há.Ainda não tinha ouvido falar neste banco mas, para tentar dar uma luz, acredito que por analogia a outros bancos você possa implementar uma procedure ou function (não saberia dizer qual você utilizaria - mas imagino que você possa saber) que recebesse e devolvesse as informações através de parâmetros.Normalmente a função REPLACE recebe os parâmetros (<expressão>, <procurar por>, <substituir por>) e para implementá-la precisaríamos alguns equivalentes ao que estamos acostumados a ver em programação:Equivale ao SubString: $EXTRACT(StrValue, StartPos, EndPos)Equivale ao Pos: $FIND(StrValue, SubString)Na implementação da procedure, os parâmetros seriam: - entrada => StrExpression, StrToSearch, StrToReplace - saída => Result (testo retornado)Este seria um esqueleto/exemplo baseado nas informações encontradas no guia de referência:CREATE PROCEDURE REPLACE (IN StrExpression VARCHAR(100), IN StrToSearch VARCHAR(50), IN StrToReplace VARCHAR(50), OUT Result VARCHAR(150)) BEGIN LANGUAGE OBJECTSCRIPT { SET StrPos=$FIND(StrExpression, ToFind) If (StrPos > 0) { SET ResultBegin = $EXTRACT(StrExpression, 1, StrPos -1) SET ResultEnd = $EXTRACT(StrExpression, StrPos +$LEN(StrToSearch) +1) SET Result = ResultStart + StrToReplace + ResultEnd } else { SET Result = StrExpression } } END *Não está claro na documentação se as funções utilizadas são case-sensitive. Supondo que algo assim funcione, os parâmetros VARCHAR devem ter seus tamanhos definidos de modo a acomodar as informações que você pretende passar. Pelo que consta em SQL Data type, parece não haver como um tipo string de tamanho indefinido. No Firebird, por ex., usar esta procedure em uma consulta SQL seria feita do seguinte modo: SELECT Nome, REPLACE(Nome, 'MARIO', 'MARIA').Result FROM TabNOMEAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
CAIO.EXE
Bom dia Senhores,
gostaria de saber se há alguma função similar ao REPLACE do SQL no CACHE!
obrigado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.