Fórum separar parte de uma string via sql #277740
18/04/2005
0
Estou importando dados de uma tabela cliente que o campo cep origem tem 9 posições (16400-000) e na minha tabela contem 8 posicoes (16400000) como fazer via sql para extrair as 5 primeiras posicoes do cep e as 3 ultimas posicoes e concatenar, ou seja a minha dúvida é que comando eu utilizo para extrair parte de uma string assim como no delphi o comando copy.. .
Grato
Plácido
Placido
Curtir tópico
+ 0Posts
18/04/2005
Jowjow
from tabela
Gostei + 0
18/04/2005
Paulo-serra
function TForm1.ExtraiNumeros(str: String): String;
Var
num: String;
i: integer;
begin
num := ´´;
for I:=1 to length(str) do
If str[I] in ([´0´..´9´]) then
num := num + str[I];
result := num;
End;
Gostei + 0
18/04/2005
Gandalf.nho
Gostei + 0
18/04/2005
Placido
Veja minha codificação abaixo:
Se eu tiro a linha do subtring roda normal, com a linha do substring esta dando erro (type mismatch)
INSERT INTO ´:TorrezanPneus:CLIENTE´(CLI_CODIGO,
CLI_NOME,
cli_logradouroendereco,
cli_bairro,
cli_cidade,
cli_cep,
EMP_CODIGO)
SELECT tCODCLI,
NOME,
endERECOT,
bairro,
cidade,
substring(cep from 1 for 5)||substring(cep from 7 for 3),
tempresa
FROM ´:TorrezanFox:Clientes´
A linha substring esta errada??
Grato
Placido
Gostei + 0
18/04/2005
Rjun
Gostei + 0
18/04/2005
Placido
Grato
Placido
Gostei + 0
19/04/2005
Placido
Ainda não resolvi o problema de tirar a mascara do campo cep..
Estou aguardando a solução..
Grato
Gostei + 0
25/04/2005
Placido
Ainda não consegui resolver o problema de separar o traço(-) do campo cep, tentei rodar da forma como foi sugerido acima e da erro na linha 1 coluna 22 ou seja no from.
Veja o exemplo do meu comando:
select substring(cepi from 1 for 5) || substring(cepi from 7 for 8) as cep_concatenado
from cliente
Ou seja a variavel cepi contem 9 characteres ex (16400-030)
Pergunta não tem uma função tipo copy do delphi???
Se algume puder me ajudar agradeço.
Placido
Gostei + 0
25/04/2005
Rjun
Gostei + 0
25/04/2005
Placido
Estou importando dados de uma tabela paradox do cliente para o meu banco de dados firebird na tabela cliente.
Os campos normais está importando corretamente, acontece que o campo cep da tabela paradox contem a mascara no campo cep(16400-100) na minha tabela nao contem a mascara(16400100). Aminha dúvida é esta como gravar este campo separando o traço. Foram citados alguns exemplos mas não está dando certo.
Estou utilizando o utilitário sqlExplorer para fazer esta importação.
Já fiz de tudo mas não consegui.
Criei um campo temporario na minha tabela cliente o campo cep com 9 posiçoes importo da tabela paradox normal, fiz uma procedure para gravar o campo cep sem o traço mas não consegui, porque não sei qual o comando que eu devo usar para separar o traço da string.
Grato
Gostei + 0
25/04/2005
Rjun
Gostei + 0
25/04/2005
Rômulo Barros
[b:0b70cc95a8]Tem sim.[/b:0b70cc95a8]
Var Cep : String; Begin Cep := Copy(MeuCepComFormatação,Inicio,Fim); End;
Gostei + 0
25/04/2005
Placido
Tenho certeza que tem a solução..
Vou continuar pesquisando..
Grato
Gostei + 0
26/04/2005
Placido
Grato
Plácido
Gostei + 0
26/04/2005
Kotho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)