dificuldades diversas
Caros colegas:
Tenho um campo1 VarChar e estou precisando eliminar um caracter:
Exemplo:
1234-90 - estou precisando eliminar o (-), como posso fazer isso;
e depois preciso converter este campo1 de VarChar para Integer,
e depois mover os dois ultimos digitos para um outro campo2 e restante mover para o campo3.
Como devo proceder para executar isso.
Atenciosamente
Osmar Scobin
Dracena - SP
:(
Tenho um campo1 VarChar e estou precisando eliminar um caracter:
Exemplo:
1234-90 - estou precisando eliminar o (-), como posso fazer isso;
e depois preciso converter este campo1 de VarChar para Integer,
e depois mover os dois ultimos digitos para um outro campo2 e restante mover para o campo3.
Como devo proceder para executar isso.
Atenciosamente
Osmar Scobin
Dracena - SP
:(
Scobin
Curtidas 0
Respostas
Afarias
01/08/2003
Uma UDF (específica, feita por vc) faria bem o serviço, entretanto, segue outras sugestões:
1º registre a UDF padrão do IB:
DECLARE EXTERNAL FUNCTION substr
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT ´IB_UDF_substr´ MODULE_NAME ´ib_udf´;
|Tenho um campo1 VarChar e estou precisando eliminar um caracter:
|1234-90 - estou precisando eliminar o (-), como posso fazer isso;
select substr(campo1, 1, 4)||substr(campo1, 6, 7) from tabela;
|e depois preciso converter este campo1 de VarChar para Integer,
select cast(substr(campo1, 1, 4)||substr(campo1, 6, 7) as integer) from tabela;
|e depois mover os dois ultimos digitos para um outro campo2
update tabela set campo2 = substr(campo1, 6, 7);
|e restante mover para o campo3.
update tabela set campo3 = substr(campo1, 1, 4);
Observe q estas soluções funcionam apenas se seus valores do campo1 possuirem um formato FIXO igual (xxxx-xx).
T+
1º registre a UDF padrão do IB:
DECLARE EXTERNAL FUNCTION substr
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT ´IB_UDF_substr´ MODULE_NAME ´ib_udf´;
|Tenho um campo1 VarChar e estou precisando eliminar um caracter:
|1234-90 - estou precisando eliminar o (-), como posso fazer isso;
select substr(campo1, 1, 4)||substr(campo1, 6, 7) from tabela;
|e depois preciso converter este campo1 de VarChar para Integer,
select cast(substr(campo1, 1, 4)||substr(campo1, 6, 7) as integer) from tabela;
|e depois mover os dois ultimos digitos para um outro campo2
update tabela set campo2 = substr(campo1, 6, 7);
|e restante mover para o campo3.
update tabela set campo3 = substr(campo1, 1, 4);
Observe q estas soluções funcionam apenas se seus valores do campo1 possuirem um formato FIXO igual (xxxx-xx).
T+
GOSTEI 0