[JAVA] Stored Java Functies Info

Pagina: 1
Acties:

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
In plaats van een vraag te stellen heb ik hier wat informatie over hoe je een Java stored function maakt (in Oracle minimaal versie 8.1.5 nodig, zelf uitgeprobeerd op 8.1.7).

Stap een :

Maak een java bestandje bijvoorbeeld :
code:
1
2
3
4
5
public class Groetjes {
    public static String hallo() {
        return "Hallo leerdam";
    }
}

Compileer deze met de normale JDK van bijvoorbeeld Sun.

Maak op je HD ergens een map aan waar je wilt dat Oracle deze bestanden kan vinden bijvoorbeeld :

C:\ORACLEPROC'

Gan naar sql-Plus en doe de volgende commando's :

1:

CREATE OR REPLACE DIRECTORY JAVADIR AS 'C:\ORACLEPROC';

2:

CREATE OR REPLACE JAVA CLASS USING BFILE (JAVADIR, 'Groetjes.class');
/

Hiervoor moet het bestand reeds in de C:\ORACLEPROC geplaatst zijn.

3:

CREATE OR REPLACE FUNCTION GROETEN RETURN VARCHAR2
IS LANGUAGE JAVA
NAME 'Groetjes.hallo () return java.lang.String';
/

Hiermee zorg je ervoor dat via SQL de functie ook bekend is, de java.lang.String is de return waarde van de java proc.

De method hallo() is de method die aangesproken moet worden als men de functie GROETEN gaat gebruiken.

nu is de proc in de database aangemaakt, als je hem wilt aanroepen doe je dat als volgt :

1 variable tekst varchar2(20);

deze maakt een tijdelijke variabele aan.

2 call GROETEN() into :tekst;

Deze voert de functie uit en zet de return waar in de net aangemaakt tijdelijke variabele. Dit gaat de eerste keer wat traag maar de daarop volgende keren vrij snel. Dit komt omdat Oracle de procedure eerst een keer moet uitvoeren wil hij weten wat er gebeurt denk ik.

3 print :tekst

Hiermee druk je de waarde af die in de variabele 'tekst' staat.

en ziedaar de output van de method hallo.

:) :)

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

He leuk :)
alleen kan ik geen oracle licentie betalen ;)

maar ik zal het zeker in mijn achterhoofd houden :) tnx!

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Op zondag 27 januari 2002 19:32 schreef wasigh het volgende:
He leuk :)
alleen kan ik geen oracle licentie betalen ;)

maar ik zal het zeker in mijn achterhoofd houden :) tnx!
Let hierbij op, als het voor niet commerciele doeleinde gaat dan mag je Oracle en al z'n tools gewoon gratis gebruiken.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Onno
  • Registratie: Juni 1999
  • Niet online
Op zondag 27 januari 2002 19:35 schreef ronaldmathies het volgende:
Let hierbij op, als het voor niet commerciele doeleinde gaat dan mag je Oracle en al z'n tools gewoon gratis gebruiken.
Daar denkt Oracle zelf heel anders over.
[...]

License Rights
We grant you a nonexclusive, nontransferable limited license to use the programs only for purposes of developing and prototyping your applications that operate with the programs, and not for any other purpose.

[...]

You may not:
use the programs for your own internal data processing or for any commercial or production purposes, or use the programs for any purpose except the development and prototyping of your applications that operate with the programs;

[...]

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Dan heb ik dit effe over het hoofd gezien, ikzelf heb het voordeel dat ik een licentie heb vanuit mijn bedrijf, hierdoor mag ik het exploiteren voor bijvoorbeeld mijn website. Jammer, maar ik denk alsnog dat mensen wel wat aan het bovenstaande stukje hebben. (Voor hun werk mischien of voor als ze wat aan het experimenteren zijn)

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line