viernes, 20 de enero de 2012

Cortar archivos en linux (Unirlos en Windows)

Tenia un archivo de texto de 900 MB, en un servidor Linux. El cual tenia que traer a la maquina Windows que uso en el trabajo,a través de una Wifi compartida por cientos de personas. La Wifi se caía de vez en cuando por lo que perdí varias veces la copia del archivo. ¿La solución? Dividir el archivo en varias partes, tantas que fuera mas factible traspasarla dada la tasa de transferencia de la red. Esta red no tenia salida a Internet.

En Linux use split, que permite dividir archivos y en Windows los uní con type.


split -d -b100m archivo archivo 


d Indica que los archivos serán identificados con números. Por defecto usa letras. 


b Indica el tamaño que deben tener los archivos pueden ser en M (Megabytes) o K (Kilobytes)

En Windows, Inicio -> Ejecutar -> cmd -> Enter -> ir a la carpeta donde estan los archivos y ejecutar:

type archivo1 archivo2 archivon > ArchivoCompleto.txt 


En Linux, tambien puedes unir las partes de un archivo con cat. 


cat archivo1 archivo2 archivon > ArchivoCompleto.txt

miércoles, 18 de enero de 2012

ORA-01843: not a valid month

El mensaje que aparecía en el log, después de ejecutar la shell es el siguiente:
 Record 26: Rejected - Error on table TARIFAS_CARGA, column "INICIO".ORA-01843: not a valid month
¿Cual fue la solución? Agregar formato en el archivo ctl para las fechas con la instrucción to_date, de la siguiente forma:
 Archivo CTL.


load data 
 Append into table PERIODOS 
 fields terminated by ";" optionally enclosed by '"'
 ( PERIODO , 
 INICIO "to_date(:INICIO, 'dd-mm-yy')" , 
 FIN "to_date(:FIN, 'dd-mm-yy')" 
 )

Tal vez sea necesario que conozcas primero el formato para las fechas en tu instalación de Oracle.

 select * from nls_session_parameters; 

En la imagen se encuentra marcada la opción NLS_DATE_FORMAT, esta indica el formato de fecha. RR quiere decir YY (año).



lunes, 16 de enero de 2012

Postear en Blogger desdej el iPhone


EaAaKi

Con este post, van dos que escribo desde el iPhone. Esto con la aplicación Blogger disponible en la App Store, de forma gratuita.

Aunque la uso para crear un borrador, que luego edito desde el notebook. 

Pero es de bastante ayuda , ya que permite capturar alguna idea y subirla al blog sin que se olvide posteriormente.

Como abreviar texto en VI




Probablemente SELECT * FROM es una de las consultas que mas se hace durante el día a día de un desarrollador. Ese es un ejemplo, de textos que llega a ser cansador escribir vez tras vez. Por lo que tener una forma de abreviar tales casos es lo mas eficiente. En VI se pueden abreviar los textos de la siguiente forma:

:ab sel SELECT * FROM

Donde:
sel es la abreviación
SELECT * FROM es el texto a abreviar

Entonces cuando se escribe, el texto abreviado se muestra el texto completo.

En el ejemplo, al escribir sel despliega SELECT * FROM

sábado, 14 de enero de 2012

Historial de comandos ingresados en VI




VI es basado en comandos, por lo que es lo que mas te lleva tiempo escribir. De modo que tener a mano, los que ya has ingresado va a mejorar tu productividad.

Una forma es escribir el siguiente comando (valga la redundancia)
:history

o lo otro es escribir : (dos puntos) por lo que VI esperará ordenes, pero presionas el botón de dirección hacia arriba y puedes ver lo ingresado desde lo ultimo. 

Editar texto con VI



He escrito varios post sobre VI y no he escrito nada sobre editar textos. Editar en VI no es lo mismo que en los demás editores a los que probablemente estés acostumbrad@. Como veras a continuación.

Operaciones en una linea

Cortar o Eliminar una Linea
dd

Copiar una linea
y

Pegar
p


Operaciones en varias Lineas


Cortar o Eliminar n lineas
10dd  (Corta o elimina 10 lineas desde el cursor)

Eliminar desde la linea n hasta n+1 (Ejemplo: elimina desde la linea 5 hasta la 10)
:5, 10 d

Copiar n Lineas
10y  (Copia 10 lineas)

Seleccionar Lineas
v
CTRL-v


Borrar desde el cursor hasta el final de la linea
D
d$


Borrar desde el cursos hasta el principio de la linea
d0


Operaciones en Palabras

Eliminar una palabra
dw


Copiar una palabra
yw


Deshacer los cambios
u

Insertar Texto (cambiar a modo de edición)
i


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