2010-01-25 4 views
1

c'est moi Francisco qui a écrit la première question click-here, mais maintenant j'ai un compte. Je vais essayer de l'expliquer. Pour un travail j'ai besoin d'un fichier .txt qui contient les insertions de chaîne SQl à partir d'une table Oracle. Je ne peux pas utiliser un logiciel comme toad parce que je dois le faire avec du code Java. Je n'essaie pas d'obtenir la journalisation des inserts, j'ai besoin d'un pour l'exporter depuis une table. Le client le demande, c'est la chose cruciale. Vous dites que la façon normale de le faire est d'utiliser l'utilitaire DataPump, mais en utilisant ces outils, vais-je obtenir un fichier texte? J'ai lu que DataPump fonctionne avec les fichiers binaires. en utilisant Java JDBC et les métadonnées, j'ai besoin de convertir tous les fichiers en String, ok je suis d'accord, mais je dois écrire beaucoup de code pour savoir quel type de type je reçois de la Table pour l'analyser. Un exemple est avec les types Date, les logiciels oracle l'analysent comme to_date ('0005-11-21', 'DD/MM/RR') et java toTostrig le fera quelque chose comme '2009-1-25 13:00:00' . La méthode Java toString va tronquer certains types de nombres. J'ai donc besoin de savoir si quelqu'un l'a fait ou peut m'aider.Exporter des données de table Oracle en tant que SQL Insert-String

Je suis un nouveau sur cette page, quelqu'un pourrait-il éditer la première question ou comment puis-je la mettre à jour si je l'ai fait avec un utilisateur non inscrit?

Merci beaucoup. Francisco

+0

Lien de la "première question": http://stackoverflow.com/questions/2118298/oracle-tables-data-to-insert-instructions-avec-java? –

+0

Ok, je l'ai fait.thks –

Répondre

1

L'année dernière, nous devons faire quelque chose lire et écrire des enregistrements de base de données (Ingres, Derby et HSQL) de/vers un fichier.
L'idée de base était d'avoir une classe implémentant une méthode qui renvoie une chaîne formatée en fonction du type SQL des données.
Il était quelque chose comme:

import static java.sql.Types.*; 
... 
private static final String DATE_FORMAT = "yyyy-MM-dd"; 

public static String formatDate(Date date) {   
    DateFormat format = new SimpleDateFormat(DATE_FORMAT); 
    return format.format(date); 
} 
... 
@Override 
public String format(int type, Object value) throws SQLException { 
    switch (type) { 
     case INTEGER: 
     case REAL: 
     case DOUBLE: 
     case SMALLINT: 
      return value.toString(); 
     case CHAR: 
     case LONGVARCHAR: 
     case VARCHAR: 
      return (String) value; 
     case DATE: 
      return formatDate((Date) value); 
     case TIME: 
      return formatTime((Time) value); 
     case TIMESTAMP: 
      return formatTimestamp((Timestamp) value); 

     // TODO missing some types here 

     default: 
      throw new SQLException("unhandled type " + getTypeName(type)); 
    } 
} 

désolé, je ne suis pas autorisé à poster les codes réels

+0

Merci beaucoup Carlos, je recherche des commandes EXP et IMP d'Oracle, j'essaie de convertir le fichier de vidage d'Oracle exporté en un fichier .sql appelant des scripts de Java.Il est juste et idée mais pour l'instant je n'ai pas de résultat, si j'ai de la chance et que ça marche je le posterai. Je sais à la fin peut-être que je vais devoir écrire du code Java et utiliser votre aide. deux fois –

Questions connexes