Notas del release

35.3 Capítulo 7. Procedimientos almacenados

35.3.1 El Tipo DECIMAL no se soporta en rutinas Java de Linux

Este problema se produce porque el IBM Developer Kit para Java no crea enlaces para sus bibliotecas en el directorio /usr/lib. El modelo de seguridad para rutinas de DB2 no les permite acceder a bibliotecas fuera de las bibliotecas estándares del sistema. Para habilitar el soporte DECIMAL en las rutinas de Java en Linux, realice los pasos siguientes:

  1. Cree enlaces simbólicos desde las bibliotecas de IBM Developer Kit para Java para /usr/lib/ emitiendo el mandato siguiente con autorización root:

    Para IBM Developer Kit para Java 1.1.8:

       ln -sf /usr/jdk118/lib/linux/native_threads/* /usr/lib/
    

    Para IBM Developer Kit para Java 1.3:

       ln -sf /opt/IBMJava2-13/jre/bin/*.so /usr/lib/
    
  2. Emita el mandato ldconfig para actualizar la lista de bibliotecas de todo el sistema.

35.3.2 Utilización de cursores en procedimientos almacenados repetitivos

Para evitar errores al utilizar Procedimientos de SQL o procedimientos almacenados grabados en el SQL incluido, cierre todos los cursores abiertos antes de emitir una sentencia CALL repetitiva.

Por ejemplo, suponga que el procedimiento almacenado MYPROC contiene el fragmento de código siguiente:

   OPEN c1;
   CALL MYPROC();
   CLOSE c1;

DB2 devuelve un error cuando se llama a MYPROC debido a que el cursor c1 sigue abierto cuando MYPROC emite una sentencia CALL repetitiva. El error específico que devuelve DB2 depende de las acciones que MYPROC efectúa en el cursor.

Para llamar a MYPROC de modo satisfactorio, vuelva a escribir MYPROC para cerrar todos los cursores abiertos antes de la sentencia CALL anidada tal y como se muestra en el ejemplo siguiente:

OPEN c1;
CLOSE c1;
CALL MYPROC();

Cierre todos los cursores abiertos antes de emitir la sentencia CALL anidada para evitar un error.

35.3.3 Escritura de procedimientos almacenados de automatización OLE

Falta la última frase del párrafo siguiente en el segundo párrafo del apartado "Escritura de procedimientos almacenados de automatización OLE":

   Después de codificar un objeto de automatización OLE, debe registrar
   los métodos del objeto como procedimientos almacenados utilizando la
   sentencia CREATE PROCEDURE. Para registrar un procedimiento almacenado
   de automatización OLE, emita una sentencia CREATE PROCEDURE con la
   cláusula LANGUAGE OLE. El nombre externo consta del progID de OLE que
   identifica al objeto de automatización OLE y el nombre de método
   separados por ! (signo de exclamación). El objeto de automatización
   OLE debe implementarse como un servidor en proceso (.DLL).


[ Principio de página | Página anterior | Página siguiente ]