Bonjour, j'essaie de charger un fichier CSV dans une base de données embarquées HSQLDB. J'utilise SET TABLE mytable SOURCE "myfile;fs=;" afin de charger dans mytable le fichier myfile séparé par ";".
Avec le code de la fonction ChargerCSV() j'ai une erreur de tokken:
Le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 java.sql.SQLException: unexpected token: /Users/ceb/Downloads/DBINIT.csv;fs=; at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source) at dbManagement.DbManager.createTable(DbManager.java:95) at dbInterface.ChargementDonnées.ChargerCSV(ChargementDonnées.java:49) at dbInterface.Fenetre$2.actionPerformed(Fenetre.java:144) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6348) at javax.swing.JComponent.processMouseEvent(JComponent.java:3255) at java.awt.Component.processEvent(Component.java:6113) at java.awt.Container.processEvent(Container.java:2085) at java.awt.Component.dispatchEventImpl(Component.java:4714) at java.awt.Container.dispatchEventImpl(Container.java:2143) at java.awt.Component.dispatchEvent(Component.java:4544) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212) at java.awt.Container.dispatchEventImpl(Container.java:2129) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4544) at java.awt.EventQueue.dispatchEvent(EventQueue.java:635) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: org.hsqldb.HsqlException: unexpected token: /Users/ceb/Downloads/DBINIT.csv;fs=; at org.hsqldb.error.Error.parseError(Unknown Source) at org.hsqldb.ParserBase.unexpectedToken(Unknown Source) at org.hsqldb.ParserBase.checkIsValue(Unknown Source) at org.hsqldb.ParserBase.readQuotedString(Unknown Source) at org.hsqldb.ParserCommand.compileTextTableSource(Unknown Source) at org.hsqldb.ParserCommand.compileSet(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatements(Unknown Source) at org.hsqldb.Session.executeDirectStatement(Unknown Source) at org.hsqldb.Session.execute(Unknown Source)
J'ai testé avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public static void ChargerCSV() { DbManager manager = new DbManager(); manager.dbConnect(); manager.dropTable("TABLEINIT"); manager.createTable("CREATE TABLE TABLEINIT (" + "DEP VARCHAR(30)," + "CAN VARCHAR(30)," + "PAYS VARCHAR(30)," + "DEPCOM INTEGER," + "TYPL VARCHAR(30)," + "CATL VARCHAR(30)," + "ACHI VARCHAR(30)," + "HLML VARCHAR(30)," + "STOC VARCHAR(50)," + "TYPO VARCHAR(50)," + "MAT VARCHAR(80)," + "CHCML VARCHAR(10)," + "CMBL VARCHAR(10)," + "NBLOG FLOAT," + "SURF_TOT FLOAT," + "SURF_MOY FLOAT," + "CONSO_CHAUF_EF FLOAT," + "CONSO_CHAUF_EP FLOAT," + "CONSO_UNI_EF FLOAT," + "CONSO_UNI_EP FLOAT," + "CONSO_SURF_EF FLOAT," + "CONSO_SURF_EP FLOAT," + "CONSO_TOT_EF FLOAT," + "CONSO_TOT_EP FLOAT," + "EMIS_CHAUF FLOAT," + "EMIS_TOT FLOAT," + "DPE_ENER VARCHAR(10)," + "DPE_CO2 VARCHAR(10)" + ");"); // chargement de la base grace au LOAD de SQL manager.createTable("SET TABLE TABLEINIT SOURCE ///Users/ceb/Downloads/DBINIT.csv;fs=;"); // Maintenant, nous demandons l'affichage de la table manager.printTable("TABLEINIT"); //manager.dropTable("PERSONNE"); // Enfin, avant de partir, on se déconnecte. Le fait de ne pas supprimer // la table fait qu'à la prochaine connexion, on // récupèrera les données enregistrées. //manager.dbDisconnect(); }
manager.createTable("SET TABLE TABLEINIT SOURCE ///Users/ceb/Downloads/DBINIT.csv;fs=;");
manager.createTable("SET TABLE TABLEINIT SOURCE //Users/ceb/Downloads/DBINIT.csv;fs=;");
manager.createTable("SET TABLE TABLEINIT SOURCE //Users//ceb//Downloads//DBINIT.csv;fs=;");
Mais rien ne marche !








Répondre avec citation
Partager