Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

12 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[PHP][ORACLE] Transfère du contenu d'un champs LONG RAW vers un autre

 
n°8457
bchristo
Profil : Jeune recrue
Posté le 28-05-2004 à 16:08:40  profilanswer
 

Bonjour ...  
 
Je travail actuellement sur une base oracle qui contient un champs LONG RAW. Ce champs contient des fichiers quelconques (text, image, son ... etc etc) et lorsqu'on fais un SELECT dessus, on obtient les données brutes du fichier : plein de caractères ascii du style "ÐÏࡱá".
 
Je souhaiterais, à l'aide d'un script PHP, pouvoir copier le contenu de ce champs, vers un champs LONG RAW d'une autre base de donnée ...
 
j'arrive fort bien à copier une chaine prédéfinie de petite taille, "ÐÏࡱá" par exemple :
 
<?php
 $cnx = OCILogon("tracker", "pvcs","p84a03" );  
 
 $chaine = "ÐÏࡱá";
 
 $tmp = bin2hex($chaine);
 
 $query = "UPDATE archive_oscar.trkfile SET filecont = :tmp WHERE fileid = '1'";  
 
 $stmt = OCIParse($cnx,$query);
 OCIBindByName($stmt, ":tmp", $tmp, -1);  
 OCIExecute($stmt);  
?>
 
Quand je fais un SELECT sur le champs mis à jour, j'obtient bien "ÐÏࡱá" ... bingo ;))  
 
J'arrive également à récupérer le contenu entier d'un LONG RAW contenant un gros fichier, dans une variable php ! RE bingo :)) Par contre impossible de réinjecter cette variable temporaire dans un autre champs LONG RAW par un update :
 
<?php
 
 $cnx = OCILogon("tracker", "pvcs","p84a03" );  
 
 $query = "SELECT filecont AS test FROM sigp.trkfile@pont where fileid = '1'";  
 $stmt = OCIParse($cnx,$query);  
 OCIExecute($stmt);  
 OCIFetch($stmt);  
 
 $tmp = bin2hex(ociResult($stmt, "TEST" ));
 
 $query = "UPDATE archive_oscar.trkfile SET filecont = :tmp WHERE fileid = '1'";  
 //echo("<br /><b>Requête passée au long raw .......:</b> $query<br />" );
 $stmt = OCIParse($cnx,$query);
 OCIBindByName($stmt, ":tmp", $tmp, -1);  
 OCIExecute($stmt);  
 
?>
 
Ce script récupére bien l'information à copier mais aucune injection n'est réalisée ... l'UC est utilisée à 100%, le pc est près à exploser et Internet Explorer plante rapidement :-((  ... Visiblement trop d'information à insérer ...
 
Quelqu'un peut-il m'aider sur ce problème ?!  
 
merci @++


Aller à :
Ajouter une réponse