Red de conocimiento informático - Material del sitio web - Cómo utilizar procedimientos almacenados de Java en Oracle

Cómo utilizar procedimientos almacenados de Java en Oracle

Generalmente existen tres métodos para crear procedimientos almacenados Java.

1. Utilice la instrucción SQL de Oracle para crear:

Por ejemplo, utilice crear o reemplazar y compile el programa denominado "

seguido del programa fuente de Java. ¿El método de clase requerido debe ser estático público?

¿Reemplazar java?p>as?

Importar?Java.SQL.*;

¿Público?JavaDemo1

¿Público? ¿Invalidado? main(String[]?argv)

{

System.out.println("Hola, java? demostración 1");

}

/

¿Java?

¿Error?

¿Reemplazo de SQL?

¿Idioma? Demostración de Java 1 . main(Java . lang . string[])';

/

Proceso creado

Salida del servidor SQL. ? ¿Abrir?

SQL gt? Demostración de Java 1();

SQL gt_output(5000);

Llamada completa.

SQL gt? Demostración de Java 1();

Hola demo1

Llamada completada

Demostración de SQL gt 1();

¿Hola? java demo1

Llamada completada 2. Utilice archivos de clase externos para cargar y crear

Por ejemplo, dado que aquí se utilizan archivos externos, los archivos de clase deben cargarse. colocarse en el directorio de Oracle Server

Public ? OracleJavaProc

{

Public void main(String[]?argv)

System.out. println("¿Sí? ¿Respuesta? ¿Java? ¿Oracle? Programa."); ¿Conceder? ¿crear? ¿Hay alguno? ¿Tabla de contenido? ¿A dónde ir? Scott;

Autorización exitosa.

¿SQL gt? ¿Conn? scott/tiger@iihero.oracledb

Conectado.

¿SQL gt? ¿crear? ¿aún? ¿reemplazar? ¿Tabla de contenido? directorio_prueba? as 'd:/Oracle';

El directorio ha sido creado.

¿SQL gt? ¿crear? ¿aún? ¿reemplazar? ¿Java? ¿clase? ¿usar? bfile(Directorio de prueba, clase OracleJavaProc.')

2/

Java? Creado.

¿SQL gt? ¿crear? ¿aún? ¿reemplazar? ¿programa? pruebajavaproc? ¿Como? ¿idioma? ¿Java? ¿nombre? oraclejavaproc . main(Java . lang . string[])';

2/

El proceso ha sido creado.

¿SQL gt? ¿Llamar? testjavaproc();

La llamada se completó.

¿SQL gt? ¿implementar? pruebajavaproc

PL/SQL? El proceso se ha completado con éxito.

¿SQL gt? ¿configuración? ¿Salida del servidor? ¿abierto? ¿tamaño? 5000

SQL gt? ¿Llamar? DBMS_Java.set_output(5000);

La llamada se completó.

¿SQL gt? ¿implementar? testjavaproc

¿En serio? ¿respuesta? ¿Java? ¿Oráculo? Una forma que recomiendo es cargarlo y crearlo de forma remota usando directamente el comando loadjava.

Primero crea una clase, por ejemplo

¿Importar? Java.SQL.*;

¿Importar? Oracle.JDBC.*;

¿Público? ¿clase? OracleJavaProc? {

//¿Agregar? ¿respuesta? ¿Salgrado? ¿A dónde ir? ¿eso? base de datos.

¿Público? ¿Electricidad estática? ¿Vacío? addSalGrade(int?Grade,?int?losal?int?hisal)? {

System.out.println("¿Crear? ¿Nuevo? ¿salgrade? ¿Para qué? Empleados...");

¿Probar? {

¿Contacto? ¿Conn? =

administrador de controladores . getconnection("JDBC:default:connection:");

¿Cadena? SQL? =

"¿Insertar? en? ¿salgrado?"?

¿"(Calificación, LOSAL, HISAL)??"

"Valores(?,?,?)";

¿Informe preparado? ¿pstmt? =?conn . preparar declaración(SQL);

pstmt.setInt(1, grado);

pstmt.setInt(2, losal);

pstmt .setInt(3,hisal);

PS TMT . ejecutar actualización();

pstmt

}

captura(SQLException?e)? {

System.err.println("¿¡Error!? ¿Agregar? Salgrade:?"?

?e . getmessage());

}

}

}Utilice el comando loadjava para cargarlo en el servidor y compilar:

d: eclipse 3.1 workspacedbtest gt; -¿Y tú? scott/tiger@iihero.oracledb? -v? -¿resolver? ¿aún?

acleJavaProc.java?

Argumento:? -¿Y tú? ' scott/tiger@iihero.oracledb? '"¿Vo?" - ¿Resuelto? OracleJavaProc.java'?

¿Crear? :?¿fuente? OracleJavaProc?

Cargando:? ¿fuente? OracleJavaProc?

Análisis:? ¿fuente? OracleJavaProc?

Verificar estado:

Conectar a:

Oracle9i? ¿empresa? ¿Versión? ¿liberar? 9.2.0.1.0?-?Producción

¿Qué utilizar? ¿eso? Dividir,? ¿OLAP? Entonces qué.

¿Oráculo? ¿datos? ¿minería? Seleccione

¿JServer? ¿liberar? 9.2.0.1.0?-?Producción

SQL gt? ¿elegir? ¿Nombre del objeto? ¿Tipo de objeto? ¿estado? ¿De donde? objeto_usuario? ¿Dónde? tipo_objeto? ¿Por ejemplo? JAVA ';

Nombre del objeto

-

Estado del tipo de objeto

- ?-

OracleJavaProcp>

JAVA? ¿clase? ¿Válido

OracleJavaProc

JAVA? Procedimiento almacenado de prueba SOURCEVALID:

SQL gt? ¿crear? ¿aún? ¿reemplazar? ¿programa? add_salgrade(id? número,?losal?número,?hisal?número

ber)? ¿Como? ¿idioma? ¿Java? ¿nombre? OracleJavaProc.addSalGrade(int, int,? int)';

2/

El proceso ha sido creado.

¿SQL gt? ¿configuración? ¿Salida del servidor? ¿abierto? ¿tamaño? 2000

SQL gt? ¿Llamar? DBMS_Java.set_output(2000);

La llamada se completó.

¿SQL gt? ¿implementar? add_salgrade(6,?10000,?15000);

¿Creación? ¿Nuevo? ¿Salgrado? ¿para qué? Empleado...

¿PL/SQL? El proceso se ha completado con éxito.

¿SQL gt? ¿elegir? *?¿De donde? ¿Salgrado? ¿Dónde? Nivel = 6;

Gradlosar

- ?- ?-

61000015000