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 .

Para sustituir un archivo JAR en una ubicación remota, debe ejecutar una sentencia CONNECT para conectarse con esa ubicación antes de llamar a SQLJ.DB2_REPLACE_JAR.

Autorización de SQLJ.DB2_REPLACE_JAR

Para llamar a SQLJ.DB2_REPLACE_JAR, el conjunto de privilegios debe incluir al menos uno de los elementos siguientes:
  • Privilegio EXECUTE sobre SQLJ.DB2_REPLACE_JAR
  • Propiedad de SQLJ.DB2_REPLACE_JAR
  • Autorización SYSADM
El conjunto de privilegios también debe incluir la autorización para sustituir un archivo JAR, que consta de al menos uno de los elementos siguientes:
  • 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

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual CALL SQLJ.DB2_REPLACE_JAR ( Localizador de JAR, Nombre de 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 ();
    }
  }
}