[ ORACLE ] Problème avec le type LONG

Problème avec le type LONG [ ORACLE ] - Programmation

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??

Reply

Marsh Posté le 07-08-2001 à 11:04:36   

Reply

Marsh Posté le 07-08-2001 à 15:28:18    

HELP :(!

Reply

Marsh Posté le 07-08-2001 à 17:15:21    

please, sniff!...

Reply

Marsh Posté le 08-08-2001 à 09:19:00    

SVP

Reply

Marsh Posté le 28-08-2001 à 10:57:18    

Toujours personne?

Reply

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 :)

Reply

Marsh Posté le 29-08-2001 à 09:19:45    

je désespère  SNIF! :(

Reply

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+

Reply

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

Reply

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.

Reply

Marsh Posté le 30-08-2001 à 09:36:53   

Reply

Marsh Posté le 30-08-2001 à 09:50:21    

prob avec les smilies:
 
:D c'est pour le symbole deux points et la lettre d ":" et "d"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed