martes, 10 de enero de 2012

Buscar un campo en una Base Oracle

Creo que esta es una necesidad que no se da tan frecuentemente, pero en algún minuto puede ser necesario, como me paso a mi. Saber a que tabla o tablas corresponde un campo. Esta consulta me ha salvado varias veces , de modo que la comparto:

SELECT OWNER, TABLE_NAME , COLUMN_NAME , DATA_TYPE , DATA_LENGTH
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME LIKE 'nombre_campo'
ORDER BY 2;

Donde:
nombre_campo es el nombre del campo buscado , el cual puede llevar comodines como %nombre_campo, o nombre_campo%, etc.


domingo, 8 de enero de 2012

Cambiar texto a mayúscula o minúscula en VI



Para los programadores que nos gusta mantener una nomenclatura al declarar variables o el código fuente en general, aveces, necesitamos convertir alguna palabra o linea a mayúsculas o minúsculas.Obviamente, todo esto se puede hacer en VI.

En modo de comando, te posicionas al inicio de la palabra.

Convertir palabra a mayúscula
gUw


Convertir palabra a minúscula
guw


Para convertir una linea completa a mayúscula
gU$
gUU

Para convertir una linea completa a minúscula
gu$
guu





jueves, 29 de diciembre de 2011

Como comentar código con VI



Para comentar varias lineas de código fuente en VI, se usa la siguiente orden (ejemplificada):


:4,18 s/^/# /

De acuerdo al ejemplo. Se inserta el símbolo # desde la fila 4 hasta la 18. Dependiendo del lenguaje en que estés programando el carácter # lo puedes reemplazar por el que corresponda a comentarios.

Para mostrar los números de lineas se usa:
:set nu


No such file or directory



No such file or directory . Es un error que parece evidente, pero al mismo tiempo desconcierta. Sobre todo si vez el código y este esta bien escrito.

Me ocurrió con una shell, la cual tiene que acceder a un directorio y ejecutar desde ese lugar otras shell. Y al momento de ejecutar: cd directorio , aparecía este error.

Lo que no les he comentado es que la shell la escribí en Windows y luego la pase al entorno de trabajo Linux. De ahí que la solución pase por cambiar el formato del archivo, con las instrucciones que detallo a continuación:

Abrir el archivo con vi o vim.
vi archivo

Aplicar formato unix.
:set fileformat=unix

:wq!

o bien, desde la consola
dos2unix archivo

Si te encuentras con este error, verifica que sea el formato.

miércoles, 28 de diciembre de 2011

ORA-01858 - se ha encontrado un carácter no numérico (Solucionado)


Me encontré con este error: ORA-01858. Al hacer una comparación de fechas.

ORA-01858: se ha encontrado un carácter no numérico donde se esperaba uno numérico
01858. 00000 -  "a non-numeric character was found where a numeric was expected"
*Cause:    The input data to be converted using a date format model was
           incorrect.  The input data did not contain a number where a number was
           required by the format model.
*Action:   Fix the input data or the date format model to make sure the
           elements match in number and type.  Then retry the operation.


 En la consulta uso lo siguiente:
..
WHERE TO_DATE(DEACTIVATION_DATE,'DDMMYY')=TO_DATE(SYSDATE,'DDMMYY')-1;

La causa de este error, es que dado el formato,  no se encuentran los valores numéricos en el lugar que son requeridos.

Y la solución es formatear correctamente las fechas:
..
WHERE TO_DATE(DEACTIVATION_DATE,'dd-mm-yy')=TO_DATE(SYSDATE,'dd-mm-yy')-1;    



martes, 20 de diciembre de 2011

ISNULL EN ORACLE - Reemplazar valores nulos



Tengo mas experiencia trabajando en MS SQL y en MYSQL que en Oracle (soy novato) por lo mismo al momento de necesitar hacer algo se me viene a la mente como es en MS SQL / MYSQL y pienso que puede haber varios en una situación similar.

En MS SQL existe la función ISNULL para reemplazar valores nulos, ejemplo:
SELECT Campo1, ISNULL(Campo2, '0') FROM Tabla 


En MySQL la función es:
SELECT Campo1,  COALESCE (Campo2, '0') FROM Tabla 


En Oracle, la función es NVL, ejemplo:
SELECT Campo1, NVL(Campo2, '0') FROM Tabla 


Lo que hacen estas funciones es reemplazar el valor nulo si existe por el que se le indica.













domingo, 18 de diciembre de 2011

Conectarse a Internet desde Fluxbox

Uso Fluxbox cuando ejecuto maquinas virtuales en Ubuntu. Básicamente por que es un escritorio ligero, que no ocupa muchas recursos. El problema es que cuando lo uso me quedo sin Internet, cosa que sin duda le ocurre a todos los que usan Fluxbox. Para ejecutar  network manager se debe ejecutar el siguiente comando en una consola:

sudo nm-applet &

Sitio de Fluxbox
http://j.gs/Tya