Bonjour,
j'essaye de créer une procédure ou plutôt une fonction stockée sous PointBase. Voici les commandes que j'utilise dans la console PointBase:
Voici la classe SampleExternalMethods.java que j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE FUNCTION carre(IN valeur INT) RETURNS BIGINT LANGUAGE Java NO SQL EXTERNAL NAME \"SampleExternalMethods::carre\" PARAMETER STYLE SQL;
J'ai placé le .class dans le répertoire C:\Sun\AppServer\pointbase\lib, car j'ai vu que dans certains exemples, on y plaçait des .jar contenant des classes java.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class SampleExternalMethods { public long carre(int valeur) { long toto = valeur * valeur; return(toto); } }
Cependant, il me met une erreur:
Si j'enlève les "\", il me met cette erreur:SQL> Error Message: Expected to find "an identifier" instead found "\" at position 87.
SQL> Error SQLState: ZB005
SQL> Error Code: 10006
SQL>
J'avoue ne pas avoir forcément bien saisi, comment faire le lien entre ma classe java et l'EXTERNAL NAME, en effet d'après ce que j'ai lu il faudrait un constructeur à cette classe qui établisse une java.sql.Connection, mais bon comme il n'y a pas d'exemples, difficile de se faire une idée.SQL>
SQL> Error Message: Cannot create Store Procedure CARRE. java.security.AccessControlException: access denied (com.pointbase.sp.spPermission SampleExternalMethods).
SQL> Error SQLState: ZG037
SQL> Error Code: 25037
SQL>
Merci d'avance pour vos réponses.
Mumu27!
Partager