[firebase-br] Retirar pontos de um campo

Denis Dias denisdias em sociativa.com.br
Qui Ago 29 10:25:40 -03 2013


Olá Pessoal,

Estou utilizando a sentença abaixo para retornar somente os números de um
campo (NCM) de uma tabela (Est_adicionais), preciso implementá-la agora
para atualizar (Update) o campo com o retorno da consulta, mas estou
encontrando dificuldades, alguém pode me ajudar?
*Obs: utilizo o Firebird 2.0.3 e o IBmanager para executar a sentença.*

SELECT
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  1 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  1 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  2 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  2 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  3 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  3 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  4 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  4 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  5 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  5 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  6 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  6 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  7 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  7 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  8 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  8 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  9 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM  9 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 10 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM 10 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 11 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM 11 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 12 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM 12 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 13 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM 13 FOR 1) ELSE '' END ||
   CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 14 FOR 1) IN
('0','1','2','3','4','5','6','7','8','9') THEN SUBSTRING(EST_ADICIONAIS.ncm
FROM 14 FOR 1) ELSE '' END

   AS SO_NUMERO
  FROM EST_ADICIONAIS

OBS: Já utilizei no Ibexpert e no IBmanager a senteça
*Update Est_Adicionais Set NCM = Replace(NCM,'.','')*

*mas me retornou a mensagem: *
An error was found in the application program input parameters for the SQL
statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
REPLACE



Mais detalhes sobre a lista de discussão lista