Substring no Assistente SQL



  • Olá bom dia.

    Preciso utilizar a função [b]substring(string from pattern)[/b] para formatar meu campo diretamente do banco de dados, mas o Maker não aceita o comando substring. Utilizo o banco de dados postgres.

    Qual a alternativa?


  • Testei aqui e funcionou.

    Select
    fr_acao.aco_codigo,
    SubString(fr_acao.aco_nome From 1 For 4 )
    From
    fr_acao


  • Fiz o mesmo teste aqui, imagens em anexo...
    [235_substring1.png](/assets/uploads/files/235_substring1.png)
    [235_substring2.png](/assets/uploads/files/235_substring2.png)


  • Estranho. Tem certeza que está utilizando no Postgres? Será que o seu projeto está no Postgres e vc está tentando utilizar esta função em uma conexão adicional que não é Postgres?

    O caracter '' é apresentado sempre que o assistente não conhece a função.


  • Estou na conexão principal, não existe conexão adicional em meu projeto.

    Então o Maker não reconhece a função Substring para Postgres?

    Você testou no assistente sql?


  • Sim, no assistente SQL.
    [67_substring.png](/assets/uploads/files/67_substring.png)


  • Pode estar relacionado com a versão do Maker ou do banco?

    Utilizo o Postgres 8.2 e Maker 2.6.1.39


  • Não, não. Tenho também esta versão aqui e está funcionando. Este banco foi criado pelo Maker?


  • Sim foi criado pelo maker.

    Já fiz o mesmo teste no "CEO - Controle de Estoque" que vem na instalação e em meu sistema de treinamento e também não deu certo.

    Parece que o assistente não entende o "from" da função.


  • Se vc fizer substring (campo, 1, 2)

    funciona?


  • Sim, então o problema está mesmo na cláusula [b]FROM[/b].

    De acordo com a documentação do Postgres a sintaxe da função SUBSTRING para expressões regulares é esta: [b]substring(string from pattern)[/b].

    A não ser que essa função também admita vírgula no lugar de FROM.


  • Também admite vírgula.
    Olhando a documentação aqui do PostgreSQL, existe também a possibilidade do " string from for count". No final, é a mesma coisa.

    O Maker 2.7 dá suporte esta sintaxe (string from for count). Como você utiliza a versão 2.6, pode fazer como informei.


  • O meu caso é bem específico e eu realmente preciso utilizar expressão regular. Felizmente a função também admite vírgula.

    Resolvido, mas o fato da função [b]substring(string [from int] [for int])[/b] funcionar no seu assistente SQL e não funcionar no meu ainda é um misério :roll: :roll:


  • [quote="VVB"]O meu caso é bem específico e eu realmente preciso utilizar expressão regular. Felizmente a função também admite vírgula.

    Resolvido, mas o fato da função [b]substring(string [from int] [for int])[/b] funcionar no seu assistente SQL e não funcionar no meu ainda é um misério :roll: :roll:[/quote] No caso do "from", eu testei inicialmente no 2.7

    Que bom que tenha resolvido. Tópico fechado.

Log in to reply