Bonjour, j'essaye de créer une procédure (ou fonction stockée) dans pointbase, mais j'ai quelques soucis.
Tout d'abord j'écris cette commande dans la console:
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 qu'on utilisait avec EXTERNAL NAME.
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>
Je pense que le problème vient notamment du fait que je ne sais où placer le .class ou en tout cas, comment lui indiquer où est le .class. De plus d'après ce que j'ai lu il faudrait un constructeur à cette classe java 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