Home > Trucs & astuces > Teradata – fonctions

Teradata – fonctions

  • Fonctions qui proviennent d’oracle

La migration de Teradata en V14 donne accès à des fonctions compatibles avec Oracle. En voici quelques exemples.

oreplace(‘chaîne’, ‘a_remplacer’,’par’)

Cette fonction permet de remplacer l’intégralité de la chaîne de texte « a_remplacer » par la chaîne « par » dans « chaîne ».

Exemple :

Seule la chaîne de caractère “abc” complète a été remplacée par “efg”.

  

otranslate(‘chaîne’, ‘a_remplacer’,’par’)

Cette fonction permet de remplacer chaque caractère de « a_remplacer » par chaque caractère de « par » dans « chaîne ».

Exemple :

Tous les “a” sont remplacés par un “e”, de même pour “b” par “f” et “c” par “g”.

Si « a_remplacer » dans la fonction OTRANSLATE contient un seul caractère alors la fonction aura le même effet que la fonction OREPLACE avec également un seul caractère dans OREPLACE.

 

  • Fonctions non ANSI

Elles passent très bien dans « Teradata SQL Assistant » mais elles ne passent pas dans un script ou dans la création d’une vue par exemple.

left(‘chaîne’, ‘nb caract à garder’)

*** Failure 3706 Syntax error: expected something between ‘,’ and the ‘LEFT’ keyword.

Statement# 1, Info =28

*** Total elapsed time was 1 second.

.

substr(‘chaîne’, ‘caract de départ’,  ‘nb caract à garder’)

Avant l’arrivée de la V14, il y avait le même problème avec la fonction length qui devait être remplacée par la fonction character_length.

.

  • Fonctions qui ne passent pas sous SQL Assistant mais qui passent dans un bteq

Certaines fonctions ne passent pas sous SQL Assistant alors que dans des scripts elles fonctionnent très bien. Il est donc dommage de s’en passer. Voici deux exemples de fonctions :

RPAD(‘chaîne’,’nb caract’,’chaîne de complément’)

 

Sous SQL Assistant, une fenêtre s’ouvre

Puis une autre :

Pour obtenir le résultat dans UltraEdit :

Dans un script, nous avons directement la donnée suivante :

abcxxx

.

LPAD(‘chaîne’,’nb caract’,’chaîne de complément’)

C’est le même principe que pour la fonction RPAD.

Dans un script, nous avons directement la donnée suivante :

xxxabc

Categories: Trucs & astuces Tags:
  1. No comments yet.
  1. No trackbacks yet.


× eight = 64