lunes, 19 de marzo de 2012

ORA-01481 - Si es texto trátalo como texto.



El siguiente campo TIME_SEND  es un VARCHAR2(20) y guarda hora minutos segundos. Ejemplo: 122040. Ante este tipo de casos siempre aclaro que no es mi letra, osea, algún otro hizo ese campo con ese tipo de datos y yo no lo puedo cambiar así como así.

El punto es que para un reporte en Microstrategy, necesito formatear ese valor que quede: 12:20:40. Para lo cual utilizo esta consulta:

SELECT TO_CHAR(TIME_SEND,'hh:mi:ss') as callTime
FROM Tabla;



Y aparece el error ORA-01481:

ORA-01481: modelo de formato numérico no válido
01481. 00000 -  "invalid number format model"
*Cause:    The user is attempting to either convert a number to a string
           via TO_CHAR or a string to a number via TO_NUMBER and has
           supplied an invalid number format model parameter.
*Action:   Consult your manual.

Para este error mi solución es sencilla. Si es texto trátalo como texto.

SELECT SUBSTR(TIME_SEND,1,2)||':'||SUBSTR(TIME_SEND,3,2)||':'||SUBSTR(TIME_SEND,5,2) AS CALLTIME
FROM Tabla;


Directorio de trabajo en GVIM



Estoy usando GVIM la versión gráfica de VIM en Ubuntu (también la uso en Windows).

El único problema que estaba detectando es que cuando editaba un archivo y quería abrir otro archivo de la misma carpeta del primero en otra pestaña ( :tabnew otroarchivo.ext ) no lo encontraba. Esto porque el directorio de trabajo no era el del archivo.

La solución es sencilla:
:set autochdir

Este comando establece el directorio de trabajo en la carpeta del archivo que esta abierto.

Fuente:
http://adf.ly/6SdRz