¿Otro bug de Teradata?

Yo creo que es un bug, vamos. Y tengo tres motivos para creerlo:

  1. Teradata no hace lo que se espera que haga.
  2. No he encontrado por ahí motivo técnico alguno que proscriba razonadamente lo que intento hacer.
  3. He hablado con un señor empleado de Teradata, le he enviado el ejemplo y en lugar de explicarme mi error (de haberlo) ha hecho el avestruz (ya hablé de lo que pasa cuando uno encuentra bugs en software propietario).

He aquí cómo reproducir el bug. Primero creo una tabla muy simple e inserto una única fila en ella.


create table borrar_cjgb (
    a char(3)
);

insert into borrar_cjgb values(  'P21' );

Selecciono el prefijo, «P», del valor que he insertado:


select
    cast( substr( ltrim( rtrim(a) ), 1,1 ) AS CHAR(3) ) as prefijo
    from borrar_cjgb
;

Sin embargo, por peregrinas razones, ¡Teradata no me deja encapsular mi consulta en una vista! La creación de la vista


replace view borrar_cjgb_v as (
    select
        cast( substr( ltrim( rtrim(a) ), 1,1 ) AS CHAR(3) ) as prefijo
        from borrar_cjgb
);

falla con error


3706: Syntax error: Data Type "rtrim" does not match a Defined Type name.

No sé muy bien para qué cuento esto acá hoy. Supongo que es porque el señor empleado de Teradata no atiende mi petición de luz y guía peculiar punto. Y también, claro está, para ilustrar a mis lectores con un ejemplo más de lo reacios que se muestran los altivos valedores del software propietario en aceptar razonadísimos informes de bugs.

3 comentarios sobre “¿Otro bug de Teradata?

  1. Freddy López 22 noviembre, 2010 15:14

    Lo cuentas para desahogarte y para, como dices, hacernos ver lo oscuros que son algunas gentes del software propietario. ¿Serán todos?

  2. Dixxie 27 noviembre, 2010 21:07

    Bueno, no conozco los detalles del asunto, pero supongo que estas tan enfadado porque tienes una licencia del producto y no te han atendido como supones que corresponde, o no es asi ?

    Como sea, rtrim y ltrim son funciones de t-sql, no de teradata. Ademas para que estas casteando ?

    Yo te lo testee en Teradata 12 y funciona OK :

    replace view borrar_cjgb_v as (
    select
    substring( trim( a) , 1,1 ) as prefijo
    from borrar_cjgb
    );

    Saludos.

  3. datanalytics 27 noviembre, 2010 22:00

    @Dixxie
    Bueno, lo de enfado, que tampoco lo es, es otra historia distinta. El de por qué se hacen trims, realmente, lo ignoro: era un problema que planteó un compañero (que vete tú a saber qué intentaba hacer) que había probado una consulta que funcionaba pero que luego no podía «persistirla» en una vista.

    Para mí, si puedes hacer una consulta, puedes hacer la correspondiente vista. Si no, eso es un bug; y lo demás, naranjas de la china.

    Debería haber dejado indicada la versión de Teradata que estamos usando por referencia.

    En cualquier caso, no me preocupa insisto, tanto el hecho de que lo que intentaba hacer un compañero mío fuese razonable o no (o existiesen alternativas menos prolijas para hacerlo) como el que con cierto software propietario, descubres bugs y en lugar de agradecértelo (recuérdese que Knuth regalaba «dólares hexadecimales» a quien se los hiciese saber en su código)… ¡no voy a decir qué te hacen!

Los comentarios están desabilitados.