su: cannot open session: Permission denied. Oracle Database 12c sobre Docker

Realizando pruebas de instalación de Oracle Database sobre Docker me encontré con algunos problemas. El problema se presenta al momento de loguearse con el usuario Oracle luego de haber instalado el paquete oracle-database-server-12cR2-preinstall.x86_64.

bash-4.2# su - oracle
su: cannot open session: Permission denied

El problema es provocado por los limites seteados al usuario Oracle el momento de instalar el paquete de requisitos de instalación. Estos limites se encuentran configurados en el siguiente archivo /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf .

Para solucionarlo hay que comentar las siguientes lineas en el archivo antes mencionado.

# oracle hard memlock 134217728
# oracle soft memlock 134217728

Quedando el archivo de la siguiente manera:

2017-06-26_9-14-55

Comentar estas lineas no provoca ningún problema en la ejecución de Oracle Database pero no permitirá habilitar el uso de HugePages para la instancia de Oracle si en algún momento es requerido.

Limitando filas en Oracle Database 12c

A veces cuando realizamos consultas es necesario limitar la cantidad de filas que retorna, este tipo de consultas muy a menudo son llamadas Top-N. En Oracle Database 12c ha sido mejorada la sintaxis para este propósito permitiendo realizar este tipo de consultas de manera muy sencilla utilizando las palabras reservadas OFFSET, FETCH. La sintaxis es la siguiente:

SELECT …
FROM …
[ WHERE … ]
[ ORDER BY … ]
[OFFSET offset { ROW | ROWS }]
[FETCH { FIRST | NEXT } [{ row_count | percent PERCENT
}] { ROW | ROWS }
{ ONLY | WITH TIES }]

Seguir leyendo