Creacion de un ejemplo sencillo de un JSP, en Orcle 10G
Portatil Compaq Evo n610c
Base de Datos Oracle 10.0.1.3
Para este ejemplo utilizaremos uno de los directorio proporcionados por la instalación de Oracle 10g
$ORACLE_HOME/javavm/demo/examples/jsproc/basic/helloWorld
[oracle@trun helloWorld]$ javac Hello.java
[oracle@trun helloWorld]$ ls -l
total 24
-rw-rw-r-- 1 oracle dba 345 ene 8 2002 create.sql
-rw-rw-r-- 1 oracle dba 315 ene 8 2002 DbmsJavaExample.java
-rw-rw-r-- 1 oracle dba 103 ene 8 2002 Hello.java
-rw-rw-r-- 1 oracle dba 635 ene 8 2002 Makefile
-rw-rw-r-- 1 oracle dba 65 ene 8 2002 run.sql
Antes de ejecutar el ejemplo es necesario poner la variable de entorno JAVA_HOME
a un path dónde exista la máquina virtual de java con el compilardor javac.
Para este caso utilizaremos el que instala oracle dentro de la instalacion de Oracle 10g que se encuentra bajo $ORACLE_HOME/jdk.
Tambien es necesario que esté creado el esquema SCOTT en la base de datos y que este puesta la variabla ORACLE_SID
con el SID de la base de datos donde se va a ejecutar el ejemplo.
[oracle@trun helloWorld]$ export JAVA_HOME=/u00/app/oracle/product/10g/jdk
Luego solamente es necesario ejecutar el comando "make" estando situados sobre el directorio de ejemplo.
Basicamente los pasos que hace el ejemplo son estos:
- Compila las clases DbmsJavaExample.java y Hello.java
- Las carga en la base de datos con el comando "loadjava"
- (create.sql) Compila desde la base de datos la clase "Hello"
Crea el paquete HELLO con la llamada a la clase Java
- Hace una llamada al paquete desde sql*plus
[oracle@trun helloWorld]$ make
/u00/app/oracle/product/10g/jdk/bin/javac -g -classpath
".:/u00/app/oracle/product/10g/jdk/jre/lib/rt.jar:/u00/app/oracle/product/10g/jdbc/lib/classes12.jar:
/u00/app/oracle/product/10g/sqlj/lib/runtime12.jar:/u00/app/oracle/product/10g/lib/vbjorb.jar:
/u00/app/oracle/product/10g/lib/vbjapp.jar:/u00/app/oracle/product/10g/javavm/lib/aurora.zip:
/u00/app/oracle/product/10g/jlib/javax-ssl-1_2.jar:/u00/app/oracle/product/10g/lib/servlet.jar" DbmsJavaExample.java
jar cfM client.jar Hello.class DbmsJavaExample.class
loadjava -f -verbose -oracleresolver -resolve -oci8 -u SCOTT/TIGER client.jar
arguments: '-f' '-verbose' '-oracleresolver' '-resolve' '-oci8' '-u' 'SCOTT/TIGER' 'client.jar'
creating : class Hello
loading : class Hello
created : CREATE$JAVA$LOB$TABLE
creating : class DbmsJavaExample
loading : class DbmsJavaExample
resolving: class Hello
resolving: class DbmsJavaExample
touch jsprocndb
sqlplus /nolog @create.sql SCOTT TIGER
SQL*Plus: Release 10.1.0.3.0 - Production on Wed Dec 8 18:42:34 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Conectado.
Java modificado.
Paquete creado.
Cuerpo del paquete creado.
No hay errores.
Desconectado de Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning and Data Mining options
sqlplus /nolog @run.sql SCOTT TIGER
SQL*Plus: Release 10.1.0.3.0 - Production on Wed Dec 8 18:42:35 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Conectado.
WORLD
--------------------------------------------------------------------------------
Hello world
WORLD
--------------------------------------------------------------------------------
Hello world
Desconectado de Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning and Data Mining options
****************************************************************************************************
create.sql
****************************************************************************************************
rem create.sql
connect &1/&2
alter java class "Hello" compile;
create or replace package HELLO as
function WORLD return VARCHAR2;
pragma restrict_references(WORLD, wnds);
end;
/
create or replace package body HELLO as
function WORLD return VARCHAR2 as
language java name 'Hello.world() return java.lang.String';
end;
/
show errors
exit
***********************************************************************************************************
run.sql
***********************************************************************************************************
connect &1/&2
select HELLO.WORLD from dual;
/
exit