sábado, 14 de abril de 2012

CREATE TABLE desde un SELECT (MYSQL)



Algunas veces se requiere clonar una tabla o tener solo algunas columnas de esta, pero con datos. Para estos casos es útil la siguiente instrucción:

create table tabla_origen select * from tabla_clonada;

Donde :
tabla_origen es la tabla que quieres copiar
tabla_clonada es el resultado que quieres obtener

En el caso del ejemplo, es la tabla con todos sus campos pero también puede ser solo algunos. Para lo cual seria de la siguiente forma:


create table tabla_origen select Campo1, Campo2, ... from tabla_clonada; 

Esto aplica para MYSQL. Para Oracle visita este post: http://rightnowweb.blogspot.com/2011/12/crear-una-tabla-partir-de-una-consulta.html

E212 : No se pudo abrir el archivo para escribir en el


Acabo de instalar SQL Developer en Ubuntu 11.10. Y para terminar , quiero crear una entrada en el menú de aplicaciones por lo que creo un archivo desde VI para editarlo.

En /usr/share/applications creo el archivo sqldeveloper.desktop (vi sqldeveloper.desktop). El contenido, tal como se ve en la imagen.

Al momento de guardar se muestra el mensjae:
"sqldeveloper.desktop" E212: No se pudo abrir el archivo para escribir en él.

Como no quiero perder lo escrito, busco la forma de hacerlo sin salir de VI y voila:

:w !sudo tee %


Me solicita la password de admin y guardo el archivo.





miércoles, 11 de abril de 2012

Diferencias de archivos desde GVIM






Con Vi se pueden comparar dos archivos, de hecho escribí un post sobre eso:

http://rightnowweb.blogspot.com/2011/05/diferencias-entre-archivos-con-vim.html

¿Pero que pasa si estoy usando GVIM, el cual de seguro se va a ejecutar desde un interfaz gráfico?

También se puede solo que desde el siguiente modo:

1. Abres uno de los archivos a comparar
2. :vert diffsplit nombre-archivo-a-comparar



Fuente
http://j.gs/qAq

Determinar si un archivo existe desde una shell bash




Últimamente me ha tocado programar bastante en Shell, por lo que debería haber mas entradas al respecto en el blog. Por eso, para ir rompiendo el hielo les dejare este tip que siempre es útil.

Como determinar si un archivo existe desde una shell bash.

#!/bin/bash

#Consulta si existe un archivo

if [ -f hola.txt ]
then
echo "El archivo existe!"
else
echo "El archivo no existe!"
fi


En el código de ejemplo consulto por el archivo "hola.txt", el cual si existe me muestra un mensaje por pantalla que existe y si no, que no existe.

sábado, 7 de abril de 2012

jar is not marked as executable

Descargue SQL Power Architect para probarlo en mi Ubuntu 11.10.  SQL Power Arquitect es un software para modelar bases de datos, lo baje con ese propósito. Es Open Source, con versiones comerciales y una para la comunidad. Esta escrito en Java por lo cual el instalador consiste en un .jar.

Al momento de ejecutar el jar me aparece el siguiente error:

The file '... jar' is not marked as executable


La ejecución la hago de la siguiente forma: botón derecho sobre el archivo -> Abrir con -> OpenJDK Java 7 Runtime.

Para poder ejecutar el archivo jar, se debe habilitar la opción: Permitir ejecutar el archivo como un programa en las propiedades del archivo (botón derecho sobre el archivo -> Propiedades -> Pestaña Permisos).




Link de SQL Power Architect
http://q.gs/172j8

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