Bonjour,
Je suis en train de développer une application Java qui doit lancer une procédure estoqué avec un paramètre. Je mets ci-dessous ma procédure et la code Java qui je suis en train d'utiliser:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE DEFINER=`root`@`localhost` PROCEDURE `CLEANTABLE`(IN `TBL` TEXT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT 'procedure pour effacer les donnés des tables avant l\'importation' BEGIN DELETE FROM `TBL`; ENDMais quand je lance mon application, j'ai le System.out.println() et l'erreur suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 String tableName = "tblgaznat"; try { String sqlTest = "{call cleantable(?)}"; CallableStatement st = con.prepareCall(sqlTest); st.setString(1, tableName); System.out.println("tableName : " + tableName + "|| paramètre : " + st.getString(1)); st.execute(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part tableName : tblgaznat|| paramètre : null
Apparentement le paramètre n'est pas correctement passé à la procédure...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 java.sql.SQLSyntaxErrorException: Table 'antargazdb.tbl' doesn't exist at org.mariadb.jdbc.internal.SQLExceptionMapper.get(SQLExceptionMapper.java:138) at org.mariadb.jdbc.internal.SQLExceptionMapper.throwException(SQLExceptionMapper.java:106) at org.mariadb.jdbc.MySQLStatement.executeQueryEpilog(MySQLStatement.java:264) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:288) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:338) at org.mariadb.jdbc.MySQLCallableStatement.execute(MySQLCallableStatement.java:1234) at RapportGenerator.loadGazNatToDatabse(RapportGenerator.java:253) at RapportGenerator.main(RapportGenerator.java:74) Caused by: org.mariadb.jdbc.internal.common.QueryException: Table 'antargazdb.tbl' doesn't exist at org.mariadb.jdbc.internal.mysql.MySQLProtocol.getResult(MySQLProtocol.java:942) at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:991) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:281) ... 4 more
Est-ce que quelqu'un pourrait m'aider svp?
Je vous remercie d'avance pour l'aide...
Partager