Subject | Cast as domain in view - wrong datatype |
---|---|
Author | Jorge Andres Brugger |
Post date | 2017-08-24T12:49:12Z |
Please check the following view def:
CREATE OR ALTER VIEW VW_TRZ_ERRORES(
CODIGO_ERROR,
DESCRIPCION_ERROR,
GTIN,
SERIE,
FECHA,
TIPO_ERROR)
AS
select errores.error, errores.descripcion, errores.gtin, errores.serie, errores.fecha, coalesce(trazabilidad_errores.tipo_error,0) as TIPO_ERROR
from trazabilidad_errores inner join (
select
cast(substring(trazabilidad_informes_mov.resultado from position(':' in trazabilidad_informes_mov.resultado)+1 for (position(' -' in trazabilidad_informes_mov.resultado)-2-position(':' in trazabilidad_informes_mov.resultado)+1)) as integer) as error,
case
when position('.' in trazabilidad_informes_mov.resultado)>0 then cast(substring(trazabilidad_informes_mov.resultado from position(' - ' in trazabilidad_informes_mov.resultado)+3 for (position('.' in trazabilidad_informes_mov.resultado)-position('- ' in trazabilidad_informes_mov.resultado))) as varchar(150))
else '' end as descripcion,
case
when position('GTIN: ' in trazabilidad_informes_mov.resultado)>0 then cast(substring(trazabilidad_informes_mov.resultado from position('GTIN: ' in trazabilidad_informes_mov.resultado)+6 for 14) as type of d_gtin)
else '' end as GTIN,
case
when position('SERIE: ' in trazabilidad_informes_mov.resultado)>0 then cast(substring(trazabilidad_informes_mov.resultado from position('SERIE: ' in trazabilidad_informes_mov.resultado)+7 for (strlen(trazabilidad_informes_mov.resultado)-position('SERIE: ' in trazabilidad_informes_mov.resultado)+7)) as varchar(20))
else '' end as serie,
max(trazabilidad_informes_mov.fecha_informe) as fecha
from trazabilidad_informes_mov
where trazabilidad_informes_mov.resultado like '%ERROR%' and substring(trazabilidad_informes_mov.resultado from position(':' in trazabilidad_informes_mov.resultado)+1 for (position(' -' in trazabilidad_informes_mov.resultado)-2-position(':' in trazabilidad_informes_mov.resultado)+1)) > 0
group by trazabilidad_informes_mov.resultado
) as errores on trazabilidad_errores.codigo_error = errores.error
;
D_GTIN is:DECIMAL(14,0)
View GTIN field is "exported" as varchar(20), instead of decimal(14,0).
Am I doing domething wrong or could be a bug?
Thanks!