Export sql to csv

Bonjour à tous,
je cherche un moyen d'exporter une table SQL en CSV.
Je recherche plus précisement une requête sql.
Merci à tous !
Configuration: Linux Debian
Mozilla 1.8.1.3

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Voici un exemple qui fonctionne sous Oracle à partir d'un script (pour d'autres bases, il faudra adapter, il y a des commande spécifiques).

    Le 1er SELECT génère la ligne 1 (nom des colonnes)
    Le 2ème est un SELECT (ici figuré par des constantes) qui ne retourne qu'une seule colonne issue de la concaténation des différents champs.
    Les commandes SET empêchent les affichages indésirables.
    La commande SPOOL force l'affichage vers le nom de fichiers spécifié.

    ----------------------- début du sql -------------------------------------

    set echo off;
    set head off
    set pagesize 0
    set feedback off
    set termout off

    spool MyFile.csv

    SELECT '"Titre1";"Titre2";"Titre3"' from dual
    ;

    SELECT
    '"'|| 'champ1' ||'";"'
    || 'champ2' ||'";"'
    || 'champ3' ||'"' as lig
    FROM
    dual
    WHERE
    1=1
    ;
    spool off;
    exit;

    ---------------------- fin du sql -------------------
    1. merci pour cette réponse. Mais je comprends pas vraiment.
      Voila ce que j'ai reussi a faire :

      <?php
      
      	
      		$server="localhost";
      		$user="root";
      		$password="";
      		$db="born2dev";
      		
      		
      
      $db = mysql_connect($server, $user, $password); // connexion à la base
      mysql_select_db($db); // sélection de la base
      
      $req = mysql_query("SELECT * FROM news"); // on sélectionne les enregistrements
      $res = count($req);
      
      $file = ("bdd_fichier.xls"); // le fichier doit déjà exister
      if(!$myfile = fopen($file, "w")) //on ouvre le fichier
      {
      print("erreur: ");
      print("'$filename' n'existe pas!\n");
      exit;
      }
      
      WHILE($res!=$i) // 5. chaque fois que "$res" est dif. de "$i", donc qu'il y a un enreg.
      
      {
      $numero = mysql_result($req,$i,"***"); // on récupère les champs
      
      
      
      
      //ecriture
      
      
      fputs($myfile,"$id_com\t $id_news\t $nom\t $email\t $siteweb\t $com\n"); //on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne
      
      
      $i++; // 8. on ajoute un au compteur et on retourne à WHILE
      }
      
      //fermeture fichier
      fclose($myfile); //on ferme le fichier
      echo "<center><h2>La table a été sauvegardée...</h2></center>";
      
      mysql_close(); // 9. on ferme la connexion
      ?>
      
      
      <form name="form0">
      <center><br><br><input type="button" value="Fermer" onClick="self.close()" name="button3"></center>
      </form> 
      	
      	


      Problème : il m'affiche ça :

      Warning: mysql_result(): supplied argument is not a valid MySQL result resource in h:\Sites\tests\affichertexte.php on line 35


      merci!