Insérer du texte dans BD oracle - PHP - Programmation
Marsh Posté le 12-12-2003 à 14:14:07
Vinx a écrit : Et en fait ajoutant TO_CHAR(ta_variable) ? |
J'ai vu sur le net que j'étais obligé d'utiliser un CLOB pour insérer mon texte. Par contre ça ne marche pas non plus j'ai toujours le même message d'erreur
Voici mon code :
$update = OCIParse($conn,"UPDATE pages SET pa_texte= :texte where Ru_ID=$ru_id" );
OCIBindByName($update,":texte",&$texte,-1);
OCIExecute($page);
Marsh Posté le 12-12-2003 à 14:59:30
Et un simple :
$update = OCIParse($conn,"UPDATE pages SET pa_texte= '$texte' where Ru_ID=$ru_id" );
OCIExecute($page);
Cà ne marche pas ?
Sans oublier les ' autour de $texte...
Marsh Posté le 12-12-2003 à 15:01:09
Heu au fait ce serait pas plutôt OCIExecute($update); à la plade de OCIExecute($page); ? ? ?
Marsh Posté le 12-12-2003 à 15:11:37
Mara's dad a écrit : Heu au fait ce serait pas plutôt OCIExecute($update); à la plade de OCIExecute($page); ? ? ? |
Si si c'est une erreur de frappe de ma part
Marsh Posté le 12-12-2003 à 15:21:09
Résultat ?
Marsh Posté le 12-12-2003 à 15:25:55
Mara's dad a écrit : Résultat ? |
mon code était "bon" si on peut dire c'etait mon post qui ne l'était pas donc résultat ça ne marche toujours pas
j'ai essayé autre chose mais cela insère un champ vide dans ma base
$lob = OCINewDescriptor($connect, OCI_D_LOB);
$sql= "UPDATE pages SET Pa_Texte=EMPTY_CLOB() WHERE Ru_ID=$ru_id RETURNING Pa_Texte INTO :texte";
$page = OCIParse($connect, $sql);
OCIBindByName($page, ":texte", &$lob, -1, OCI_B_CLOB);
OCIExecute($page,OCI_DEFAULT);
OCICommit($page);
Marsh Posté le 12-12-2003 à 15:39:07
Ton $lob, il est si gros que çà ?
Quelle taille exactement ?
Je croyais que c'était un VARCHAR2 ton champs ! Limité à 255 quoi.
Le returning, c'est pas utilisé pour mettre à jour ton champs. C'est utilisé pour récupérer un champs autoincrémenté par exemple par un trigger ou pour un rowid.
T'es certain que tu dois utiliser un CLOB, parce-que c'est méga-chiant ce truc. Doc : DBMS_LOB.WRITE
Marsh Posté le 12-12-2003 à 15:46:10
ben mon champ j'ai été obligé de la passer en CLOB car mon texte est très long
Marsh Posté le 12-12-2003 à 15:56:44
Ben t'as plus qu'à chercher des exemples d'utilisation du package DBMS_LOB
Marsh Posté le 12-12-2003 à 15:58:49
les exemples que j'ai trouvés quand j'essaye de les appliquer ça ne marche pas
Merci quand même
Marsh Posté le 12-12-2003 à 16:09:41
Code :
|
http://www.sloug.org/presentations [...] Stange.ppt
Marsh Posté le 12-12-2003 à 16:19:53
Arf, j'ai vu les exemples avec returning...
Code :
|
T'as quoi comme erreur ?
Marsh Posté le 12-12-2003 à 12:00:57
Bonjour,
Je voudrais insérer du texte dans un champ VARCHAR2 d'une BD Oracle mais j'obtiens le message d'erreur suivant :
"OCIStmExecute: ORA-01461: une valeur 'LONG' ne peut être liée que dans une colonne de type 'LONG'"
Est ce que quelqu'unà déja eu le même type de pb ?
Je ne sais pas s'il y a moyen avec PHP que je fasse une conversion de mon texte avant de l'inserer dans la BD ou s'il faut carrémment que je change le type de mon champ VARCHAR2 ?
Merci