Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Chapitre 10. Conversion de types | Avance rapide | Suivant |
Les valeurs qui doivent �tre ins�r�es dans une table sont converties vers le type de donn�es de la colonne de destination selon les r�gles suivantes.
Conversion de types pour le stockage de valeurs
V�rifier qu'il y ait une correspondance exacte avec la cible.
Dans le cas contraire, essayer de convertir l'expression vers le type cible. Cela r�ussira s'il y a une conversion (cast) enregistr�e entre ces deux types. Si une expression est de type inconnu, le contenu de la cha�ne litt�rale sera fourni � l'entr�e de la routine de conversion pour le type cible.
V�rifier s'il y a une conversion de taille pour le type cible. Une conversion de taille est une conversion d'un type vers lui-m�me. Si elle est trouv�e dans le catalogue pg_cast, appliquez-la � l'expression avant de la stocker dans la colonne de destination. La fonction d'impl�mentation pour une telle conversion prend toujours un param�tre suppl�mentaire de type integer, qui re�oit la longueur d�clar�e de la colonne de destination (en fait, il s'agit de la valeur atttypmod ; l'interpr�tation de atttypmod varie pour les diff�rents types de donn�es). La fonction de conversion est responsable de l'application de toute s�mantique d�pendante de la longueur comme la v�rification de la taille ou une troncature.
Exemple 10-6. Conversion de types pour le stockage de caract�res
Pour une colonne cible d�clar�e comme character(20), la d�claration suivante assure que la valeur stock�e a la taille correcte :
CREATE TABLE vv (v character(20)); INSERT INTO vv SELECT 'abc' || 'def'; SELECT v, length(v) FROM vv; v | length ----------------------+-------- abcdef | 20 (1 row)
Ce qui s'est r�ellement pass� ici, c'est que les deux types inconnus sont r�solus en texte par d�faut, permettant � l'op�rateur || de les r�soudre comme une concat�nation de texte. Ensuite, le r�sultat texte de l'op�rateur est converti en bpchar ( <<�blank-padded char�>>, le nom interne du type de donn�es character (caract�re)) pour correspondre au type de la colonne cible. (Comme les types texte et bpchar ont une compatibilit� binaire, cette conversion n'ins�re aucun appel r�el � une fonction.) Enfin, la fonction de taille bpchar(bpchar, integer) est trouv�e dans le catalogue syst�me et appliqu�e au r�sultat de l'op�rateur et � la longueur de la colonne stock�e. Cette fonction de type sp�cifique effectue le contr�le de la longueur requise et ajoute des espaces pour combler la cha�ne.
Pr�c�dent | Sommaire | Suivant |
Fonctions | Niveau sup�rieur | Constructions UNION, CASE et ARRAY |