Cómo utilizar Java para consultar una fila de datos en la base de datos MySQL
comenzar
Dbms_Java.grant_Permission('PSIID','java.io.FilePermission','<
Dbms_java.grant_permission('PSIID', 'SYS:java.io.FilePermission', '<
Dbms_Java.Grant_Permission('PSIID', 'java.io.FilePermission', 'd:a.bat', 'leer, escribir, ejecutar, eliminar') ;
dbms_java.grant_permission('PSIID', 'java.lang.RuntimePermission','*', 'writeFileDescriptor' );
fin;
2. Inicie sesión como usuario psiid para crear recursos del programa java
Crear o reemplazar y compilar
El nombre de la fuente java es "Util"
como
import java.io.*;
import java.lang.p> clase pública Util extiende objetos
{
pública estática int RunThis(String args)
{
Tiempo de ejecución rt = Runtime.getRuntime();
3.getRuntime();
int rc = - 1;
prueba
{
Proceso p = rt.exec(args);
int bufSize = 4096;
BufferedInputStream bis =
nuevo BufferedInputStream(p.getInputStream(), y nuevo BufferedInputStream(p.getInputStream(), y nuevo BufferedInputStream(p.getInputStream()))getInputStream(), bufSize) ;
int len;
byte buffer[] = new byte[bufSize];
// Devuelve lo que el programa escupió
while ((len = bis.read(buffer, 0, bufSize)) ! = -1)
System.out.write(buffer, 0, len);
rc = p.waitFor();
}
catch (Excepción e)
{
e.printStackTrace() )
rc = -1;
}
finalmente
{
return rc;
}
}
}
3. Cree una función que llame a recursos Java
cree o reemplace la función RUN_CMD(p_cmd en varchar2) número de retorno
como
nombre del idioma java 'Util.RunThis (java.lang.String) return integer';
4.RunThis(java.lang.String return integer';
4. Cree un procedimiento almacenado para llamar al procedimiento almacenado
Crea o reemplaza el procedimiento almacenado RUN(p_cmd en varchar2)
como
x número;
comenzar
x: = run_cmd(p_cmd);
fin;
------------------------- --- --
-------Ejemplo de ejecución
---------------------- ---- -----
--d:a.bat archivo
cd d:
Cambiar nombre a %1 %2
SQL> exec rc('d:a.bat mytest.sql b.sql') ;
D:oracleora92DATABASE>cd d:
D:>renombrar mytest. sql b.
exec :x := RUN_CMD('ipconfig');
Número de variables x
exec dbms_java.set_output(100000); /p>
ejecutivo :x := RUN_CMD('ipconfig');
ejecutivo :x := RUN_CMD('d:a.bat');
D: oracleora92DATABASE>cd: