ou sinon j'ai créer cette procédure stockée:
1 2 3 4 5 6 7 8 9 10
| CREATE PROCEDURE explainSQLServer
@QUERY VARCHAR(8000)
AS
BEGIN
SET SHOWPLAN_XML ON;
DECLARE @T TABLE (C XML);
INSERT INTO @T
EXEC (@QUERY);
SELECT * FROM @T;
END |
et exécuté ce code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public List<?> explain(String req) throws SQLException {
List<?> result = null;
List <String> tempResu = new ArrayList<String>();
try {
JtdsCallableStatement cstmt = (JtdsCallableStatement) connexion.prepareCall("{call explainSQLServer(?)}");
cstmt.setString(1, req);
cstmt.execute();
cstmt.close();
}catch(Exception e) {
System.out.println(e);
tempResu.add("ERREUR LORS DE L'EXECUTION DU EXPLAIN");
result = tempResu;
}
return result;
} |
ce qui me donne cette erreur:
java.sql.SQLException: Procédure stockée*'explainSQLServer' introuvable.
J'ai enregistré la procédure dans l'endroit proposé par défaut par SQL Server Management Studio
Partager