2013-08-18 7 views
1

Je suis vraiment frustré par JavaDB et Netbeans! Toute aide serait maintenant appréciée. J'utilise Netbeans 7.2.1 avec le dernier Java SDK.NetBeans JavaDB Bulk importer des données à partir du fichier CSV

OBJECTIF:
Importation de données au format CSV de fichier situé dans C: \ dans une table JavaDB nommée APP.USERS.

ce que je fais:
Je l'ai utilisé les codes suivants pour essayer d'importer les données dans la table, en utilisant l'utilitaire de requête SQL dans Netbeans:

  1. fonction CALL:

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, 'USERS', 'FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0); ` SELECT * FROM APP.USERS; `

  1. La fonction "autre":

INSERT INTO APP.USERS(FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE) VALUES (FROM 'c:\SQL_APP_USERS.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )); --Check the content of the table. SELECT * FROM APP.USERS;

QUESTIONS:

  • lecture de la documentation Oracle KB ne me aide pas du tout !!! (http://docs.oracle.com/javadb/10.4.1.3/tools/ctoolsimport16245.html)
  • Exécution de la fonction mentionnée en premier lieu représente résultat: Error code -1, SQL state 42Y03: 'SYSCS_UTIL.SYSCS_IMPORT_DATA' is not recognized as a function or procedure.
  • fonction d'exécution mentionné second montre les résultats: Error code -1, SQL state 42X01: Syntax error: Encountered "FROM" at line 2, column 9

S'IL VOUS PLAÎT - HELP.

Répondre

2

1.) La fonction spécifiée vous nous donner

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (...

ne correspond pas au message d'erreur

SYSCS_UTIL.SYSCS_IMPORT_DATA est pas reconnu comme une fonction ou d'une procédure.

2.) Le nombre de valeurs transmises ne répond pas aux exigences.
Il n'y a pas de fonction surchargée avec 8 paramètres.

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null,'STAFF','c:\output\myfile.del',';','%',null,0); 
    1  2    3    4 5 6 7 

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null, 'USERS','FIRSTNAME,...,', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0); 
    1  2    3     4   5 6  7  8 

La séquence est également erronée.
Cela voudrait dire que chaque colonne est une ligne distincte.

'\n',',' 

devrait être

',','\n' 

3.) Ce serait bien si elle était facile. Voici donc une classe Java Utility simple qui peut être utilisée pour charger le fichier CSV dans la base de données.

Import CSV into Database example

Testés:

  • créer un fichier vide c:\myfile.del

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null,'CUSTOMER','c:\myfile.del',';','%',null,0); 

enter image description here

Ici, avec la table FRIENDS créée pour le test.

enter image description here

Depuis le fichier 'c: \ myfile.del' est vide, donc rien à faire.
Pas d'erreur: is not recognized as a function or procedure

enter image description here

+0

Merci pour la solution !! Je reçois maintenant une erreur: 'Code d'erreur -1, état SQL XIE0R: Erreur d'importation sur la ligne 1 du fichier c: \ SQL_APP_USERS.csv: Lire endOfFile à un endroit inattendu sur la ligne 1. Code d'erreur 99999, état SQL XIE0E: Lisez endOfFile à un endroit inattendu sur la ligne 1. '
Mon fichier csv ressemble à' 1, John, Doe, john @ example.com, helloworld \ n2, Jane, Doe, jane @ example.com, helloworld2' où \ n fait référence à une nouvelle ligne dans le csv. Ma séquence est ",", "\ n". Comment puis-je réparer ça? –

+0

@JohanBrink Première: Mon exemple fonctionne? Deuxièmement: N'utilisez pas '\ n' c'est difficile à maintenir. La fonction ne peut pas voir la différence entre la fin d'une chaîne et une nouvelle ligne! Veuillez donc utiliser '%' ou tout autre délimiteur de chaîne. –

+0

Nevermind, ça marche. JE VOUS REMERCIE!!! Vous venez d'aider toute une classe informatique à surmonter un problème JavaDB. –

Questions connexes