Problème avec le type LONG [ ORACLE ] - Programmation
Marsh Posté le 28-08-2001 à 17:10:48
S'il vous plaît, je vous en prie, un petit coup de pouce quoi! Juste pour avancer un peu, même si ça résoud pas entièrement le problème, MERCI  
 
Marsh Posté le 29-08-2001 à 09:59:18
Je ne connais pas ORACLE, mais te voyant désespéré, j'ai fait une recherche sur google de Oracle LONG et j'ai trouvé (à la 8° proposition de google) ceci : 
http://callista.free.fr/php_oracle [...] phidrep=89 
 
J'espère que ton moral va remonter... 
A+ 
Marsh Posté le 29-08-2001 à 11:35:39
Merci, en fait on peut pas insérer des données de + de 2000 caractères pour Oracle7 et 4000 pour Oracle8 directement d'un fichier ou de SQLPlus, il faut passer par un script PL/SQL ou Java ou PHP. 
Le lien http://callista.free.fr/php_oracle [...] phidrep=89  
 est un bon départ pour le faire en PHP. Merci JPA 
Celui-ci explique bien le problème : www.orafaq.com 
Marsh Posté le 30-08-2001 à 09:36:53
Voilà un script qui insère tout un fichier dans un champ de type long: 
 
<? 
$db=""; 
$conn=ocilogon("scott","tiger",$db); 
 
$file="fichier.txt"; 
$fp = fopen($file, "r" ); 
while ($data = fread($fp,32768)) { 
        $curs=ociparse ($conn, "insert into TEST2 values (:data)" ); 
        OCIBindByName($curs,":data",&$data,-1); 
        ociexecute($curs); 
} 
fclose($fp); 
OCILogoff($conn); 
?> 
 
Et le script pour récupérer le contenu: 
 
<?php 
$conn = OCILogon("scott","tiger" ); 
$curs = OCIParse($conn,"select CHAINE from TEST2" ); 
/* La définition DOIT être faîte AVANT ociexecute! */ 
OCIDefineByName($curs,"CHAINE",&$chaine); 
OCIExecute($curs); 
while (OCIFetch($curs)) { 
       echo $chaine; 
} 
OCIFreeStatement($curs); 
OCILogoff($conn); 
?> 
 
Merci et j'espère que ça évitera à quelqu'un de chercher trop longtemps! 
Ce script est en PHP, il est possible de le faire aussi en java, PL/SQL. 
Marsh Posté le 30-08-2001 à 09:50:21
prob avec les smilies: 
  c'est pour le symbole deux points et la lettre d ":" et "d"
 c'est pour le symbole deux points et la lettre d ":" et "d" 
Marsh Posté le 07-08-2001 à 11:04:36
J'ai une table TEMP avec un seul champ de type LONG.
Depuis Oracle8 Navigator, j'insère via un fichier texte une chaine. Dès que cette chaîne dépasse 4000 caractères j'ai ce message : "ORA-01704: constante de chaîne trop longue".
Avec SQLPlus, l'entrée est limitée à 2499 caractères.
Avec un script PHP, j'obtiens le même message d'erreur qu'avec Oracle8 Navigator.
Comment puis-je faire?? Est-ce que ce pourraît être dû à une propriété d'Oracle??