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:

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;
Voici la classe SampleExternalMethods.java que j'utilise:

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);
	}
 
}
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.

Cependant, il me met une erreur:

SQL> Error Message: Expected to find "an identifier" instead found "\" at position 87.
SQL> Error SQLState: ZB005
SQL> Error Code: 10006
SQL>
Si j'enlève les "\", il me met cette erreur:

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>
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.
Merci d'avance pour vos réponses.

mumu27!