DB error – Error: invalid user id 0

Este error me aparecía cuando intentaba ver la lista de procedimientos almacenados, en este caso con Aginity Workbench. Al parecer es porque en algún momento se intentó dropear un procedimiento pero no todas las referencias se eliminaron. Una de las soluciones que encontré era de volver a crear los procedimientos y después borrarlos, en mi caso no funciono.

Con esta consulta identifique los SP que estaban causando problemas:
select oid, proname from _t_proc where oid>200000 and prorettype > 0 and prorettype not in (select oid from _t_object);

Borre de la tabla _t_proc los registros de los SP corruptos y así pude ver de nuevo la lista.

Instalación de drivers de Netezza en Ubuntu para usar con PHP

Netezza es un appliance de IBM diseñado para el análisis de una gran cantidad de datos en poco tiempo. Los drivers se pueden descargar de la página de IBM, pero en este caso ya los tenía en el servidor. Utiliza un fork de PostgreSql bajo un arquitectura Red Hat. Para conectarme desde Ubuntu seguí este procedimiento:

Instalar unixodbc
# apt-get install unixodbc
unixodbc crea un archivo odbcinst.ini en /etc/ que se sobreescribe con archivo de driver (mas adelante).

Preparar subdirectorio para descargar software
$ mkdir nz-client
Copiar driver de Netezza (en esta ruta también estan los de windows)
$ scp nz@:/home/nz/nps_client_software/nz-linuxclient-v7.0-P4.tar.gz .
Descomprimir software
$ tar -xzvf nz-linuxclient-v7.0-P4.tar.gz
Instalar driver en /usr/local/nz
# ./linux64/unpack

Copiar archivos de configuracion
$ cp /usr/local/nz/lib64/odbc.ini.sample ~/odbc.ini
$ sudo cp /usr/local/nz/lib64/odbcinst.ini.sample /etc/odbcinst.ini

Configurar variables de entorno
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nz/lib64
$ export ODBCINI=/home/desarrollo/odbc.ini
$ export NZ_ODBC_INI_PATH=/home/desarrollo
$ export PATH=$PATH:/usr/local/nz/bin64

Prueba con nzodbcsql (programa para probar el driver ODBC de Netezza).
$ nzodbcsql -h -d -u -p

Editar archivos de configuración (Servername, Database, Username, Password)
$ vim ~/odbc.ini
Editar linea si arquitectura es x64
$ vim ~/odbcinst.ini
Driver = /usr/local/nz/lib64/libnzodbc.so

Instalar modulo de odbc para php
# apt-get install php5-odbc

Reiniciar apache para cargar modulo
# service apache2 restart

Prueba con consola de php
$ php -a
php> $conn = odbc_connect("DRIVER={NetezzaSQL};Server=host;Database=db","usuario","password");
php > $qry = 'select count(*) c from tabla';
php > $result = odbc_exec($conn,$qry);
php > odbc_fetch_row($result);
php > echo odbc_result($result,'c');
40php >