Procedimiento almacenado SQLJ.DB2_REPLACE_JAR
SQLJ.DB2_REPLACE_JAR reemplaza un archivo JAR existente en el catálogo local de Db2® o en un catálogo remoto de Db2 .
Autorización de SQLJ.DB2_REPLACE_JAR
- Privilegio EXECUTE sobre SQLJ.DB2_REPLACE_JAR
- Propiedad de SQLJ.DB2_REPLACE_JAR
- Autorización SYSADM
- Propiedad del archivo JAR
- Privilegio ALTERIN sobre el esquema del archivo JAR
El ID de autorización que se corresponde con el nombre del esquema tiene implícito el privilegio ALTERIN sobre el esquema.
- Autorización SYSADM o SYSCTRL
Conjunto de privilegios:
Si la sentencia CALL está incrustada en un programa de aplicación, el conjunto de privilegios consiste en los privilegios que posee el propietario del plan o paquete. Si la sentencia se ha preparado dinámicamente, el conjunto de privilegios consta de los privilegios que tienen los ID de autorización del proceso.
Sintaxis de SQLJ.DB2_REPLACE_JAR
Parámetros de SQLJ.DB2_REPLACE_JAR
- localizador-JAR
- Un parámetro de entrada del localizador BLOB que apunta al archivo JAR que se va a reemplazar en el catálogo de Db2 .
- Nombre de JAR
- Un parámetro de entrada VARCHAR (257) que contiene el nombre del JAR de Db2, con el formato schema.JAR-id o ID-JAR. Nombre-JAR es el nombre que se utiliza para hacer referencia al archivo JAR en las sentencias de SQL. Si omite schema, Db2 utiliza el ID de autorización de SQL que se encuentra en el registro especial CURRENT SCHEMA.
Ejemplo de SQLJ.DB2_REPLACE_JAR
Suponga que desea sustituir un archivo JAR instalado previamente denominado DB2INST3.BUILDPLAN por el archivo JAR que se encuentra en la vía de acceso /u/db2inst3/apps/BUILDPLAN2/BUILDPLAN.jar. El siguiente programa Java™ sustituye al archivo JAR.
import java.sql.*; // JDBC classes
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
class SimpleInstallJar
{
public static void main (String argv[])
{
String url = "jdbc:db2://sysmvs1.stl.ibm.com:5021";
String jarname = "DB2INST3.BUILDPLAN";
String jarfile =
"/u/db2inst3/apps/BUILDPLAN2/BUILDPLAN.jar";
try
{
Class.forName ("com.ibm.db2.jcc.DB2Driver").newInstance ();
Connection con =
DriverManager.getConnection(url, "MYID", "MYPW");
File aFile = new File(jarfile);
FileInputStream inputStream = new FileInputStream(aFile);
CallableStatement stmt;
String sql = "Call SQLJ.DB2_REPLACE_JAR(?, ?)";
stmt = con.prepareCall(sql);
stmt.setBinaryStream(1, inputStream, (int)aFile.length());
stmt.setString(2, jarname);
boolean isrs = stmt.execute();
stmt.close();
System.out.println("Replacement of JAR succeeded");
con.commit();
con.close();
}
catch (Exception e)
{
System.out.println("Replacement of JAR failed");
e.printStackTrace ();
}
}
}
