Pregunta

Tenemos algunas tablas con columnas calculadas persistió en SQL Server.

¿Hay un equivalente de esto en Teradata? Y, si es así, ¿cuál es la sintaxis y existe alguna limitación?

Las columnas calculadas particulares estoy mirando conforman algunos números de cuentas mediante la eliminación de ceros a la izquierda - un índice también se crea en esta conformada número de cuenta:

ACCT_NUM_std AS ISNULL(CONVERT(varchar(39),
                               SUBSTRING(LTRIM(RTRIM([ACCT_NUM])),
                                         PATINDEX('%[^0]%',
                                                  LTRIM(RTRIM([ACCT_NUM])) + '.'
                                                 ),
                                         LEN(LTRIM(RTRIM([ACCT_NUM])))
                                        )
                              ),
                       ''
                      ) PERSISTED

Con la función TRIM Teradata, la parte recorte sería un poco más simple:

ACCT_NUM_std AS COALESCE(CAST(TRIM(LEADING '0' FROM TRIM(BOTH FROM ACCT_NUM))) AS varchar(39)),
                         ''
                        )

Creo que sólo podía hacer de esto una columna normal y poner el código para estandarizar los números de cuenta en todos los procesos que se insertan en la tabla. Hicimos esto para poner el código de normalización en un solo lugar.

¿Fue útil?

Solución

Por lo que yo he podido determinar, Teradata no soporta columnas calculadas en tablas.

he adoptado la estrategia de tener todos los diversos insertos utilizan el mismo código, que ha dado como resultado la duplicación de código, por desgracia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top