2013-02-06 3 views
1

J'utilise PDO avec Oracle, et quand j'essaie d'utiliser "fetchAll" sur une colonne de type "LONG", si le données à l'intérieur de plus de 512 caractères, l'avertissement suivant apparaît:PHP - PDO - Oracle - LONG - données trop grandes pour être tamponnées, tronquées pour s'adapter

Attention: PDOStatement :: fetchAll() [pdostatement.fetchall]: colonne de données X était trop grand pour le tampon et a été tronquée pour l'adapter à (. ..) sur la ligne 69

PHP version 5.2.17 Oracle version: 11g pilotes PDO: oci

+0

pdo_oci est encore expérimental, et il y a plusieurs bogues similaires qui ne sont pas résolus ou sont en cours de résolution. Par exemple: https://bugs.php.net/bug.php?id=54379&edit=1 – Sammitch

+0

Et Oracle ne fournit pas de développeurs pour le pilote PDO. Ils ne supportent que leur extension OCI8. –

+0

Essayez de remplacer l'adaptateur par 'oracle'. – user2429863

Répondre

0

Détail: c'est-à-dire pour une colonne qui présente le problème. dans varchar2 (X), X = taille désirée. exemple: select cast (nom_column AS varchar2 (70)) en tant que pseudonyme de la table;

1

J'ai eu un problème similaire. L'une des colonnes sélectionnées était de type de données d'horodatage oracle donc dans mon cas a contribué à encapsuler cette colonne avec le format défini à jour, par exemple comme ci-dessous:

SELECT TO_CHAR(column_name, 'YY/MM/DD HH24:MI:SS') as column_name FROM table

0

J'ai eu le même problème, mais dans mon cas, la le type de données était varchar. Le problème était que j'utilisais varchar (3) pour stocker des choses comme 'NÃO'. Puisque le 'Ã' utilise plus d'un octet pour être stocké, quand j'ai essayé d'aller chercher tout j'ai eu le même avertissement.

Vérifiez si vous stockez une valeur numérique supérieure à la taille d'un long. Changez la taille de la colonne dans Oracle.

Questions connexes