Krimarck’s Weblog

Mayo 13, 2008

Compilación Nativa de PL/SQL

Archivado en: PL/SQL — krimarck @ 9:07 pm
Tags: ,

Al intentar compilar un package PL/SQL en forma nativa me salio el siguiente error:

Warning: Package created with compilation errors

show errors
Errors for PACKAGE TEST_PG
LINE/COL ERROR——– —————————————————————–
0/0 PLS-00920: parameter plsql_native_library_dir is not set

Esto indica que falta configurar algunos parámetros:

  • plsql_native_make_file_name: Indica donde reside el makefile para crear shared librarys (habitualmente $ORACLE_HOME/plsql). No es asignado por default, y debe ser seteado vía alter system. Por ejemplo si ORACLE_HOME=/u01/app/oracle/product/9.2.0, hay que ejecutar (como DBA):
        ALTER SYSTEM SET plsql_native_make_file_name = ‘/u01/app/oracle/product/9.2.0/plsql/spnc_makefile.mk’;

  • plsql_native_make_utility: Indica donde esta el utilitario make. Idem. caso anterior debe ser seteado vía alter system. Por ejemplo en Solaris:
        ALTER SYSTEM SET plsql_native_make_utility=’/usr/ccs/bin/make’;

  • plsql_native_library_dir: Indica el directorio “destino” de las shared librarys. El usuario ‘oracle’ debe tener permiso de escritura y sólo root y oracle deberían ser capaces de esccribir y/o eliminar archivos en dicho directorio (que debe existir antes de setear el directorio vía alter system)
        ALTER SYSTEM SET plsql_native_library_dir = ‘/u01/app/oracle/product/9.2.0/plsql_libs’;

  • plsql_native_c_compiler: Indica la ruta completa del compilador de C (debería setearse en el makefile). Por ejemplo en el archivo spnc_makefile.mk:
  # Specify C Compiler
  #
  CC=/opt/SUNWspro/bin/cc

  • plsql_native_c_linker: Indica la ruta completa del enlazador (debería setearse en el makefile). Por ejemplo en el archivo spnc_makefile.mk:
  # Specify C Compiler
  #
        LD=/usr/ccs/bin/ld

Los últimos parámetros deberían setearse sólo si son distintos de los suministrados por defecto por el sistema operativo. Finalmente el modo de compilación se setea vía alter session por lo que no es necesario modificar el default (INTERPRETED).

Blog de WordPress.com.