Buscar este blog

jueves, 30 de octubre de 2014

GRANT SELECT SOBRE UNA VISTA EN ORACLE

Supongamos que tenemos tres esquemas como lo diagrama la figura anterior:

  1. Esquema_1: Este contiene dos tablas llamadas “Tabla_1” y “Tabla_2”
  2. Esquema_2: Se desea crear una vista llamada “Vista_1” la cual utilice las tablas “Tabla_1” y “Tabla_2” del “Esquema_1”
  3. Esquema_3: En este se desea poder utilizar la vista “Vista_1” del esquema “Esquema_2”
Inicialmente para poder crear la vista en el “Esquema_2” se debe de ejecutar los GRANT correspondientes para el permitir que este esquema pueda consultar en “Esquema_1”. Por lo que estando en “Esquema_1” se debe de ejecutar las siguientes sentencias:

GRANT SELECT ON Esquema_1.Tabla_1 TO Esquema_2 WITH GRANT OPTION;
GRANT SELECT ON Esquema_1.Tabla_2 TO Esquema_2 WITH GRANT OPTION;

Con las dos instrucciones anteriores ya será posible crear la vista en “Esquema_2”, por medio de la siguiente instrucción:

CREATE VIEW Vista_1 AS
SELECT *
FROM Esquema_1.Tabla_1 t1, Esquema_2.Tabla_2 t2
WHERE t1.campo_a = t2.campo_c;
Con esto se habrá creado la vista en el “Esquema_2”.
Ahora se desea dar permisos a “Esquema_3” para que pueda consumir la vista, para esto se debe de ejecutar las siguientes sentencias desde “Esquema_2”:
GRANT SELECT ON Esquema_2.Vista_1 TO Esquema_3;
Y con esto se podrá consultar la Vista_1 desde Esquema_3. Espero que este post les haya sido de ayuda.

miércoles, 1 de febrero de 2012

INSTALACIÓN DE DJANGO CON MOD_WSGI SIN CONFIGURAR UNA BASE DE DATOS

Navegando por la red he podido darme cuenta que existe un poco de dificultad en cuanto a la instalación de Django y la configuración de proyectos con este framework, por lo que a continuación proporciono una pequeña guía para disipar un poco esta dificultad.

Cabe aclarar que también soy novato en el uso de Python y Django, pero si tienen cualquier tipo de duda podemos buscar alguna forma de solucionarla.

OBTENIENDO EL SOFTWARE NECESARIO

Para instalar Django necesitaremos descargar/conseguir cierto software.

  1. Servidor web Apache v. 1.3, 2.0 o 2.2. Este será nuestro servidor web. En ambiente de desarrollo se acepta el uso de WAMP, pero en ambiente de producción es altamente recomendado implementar un servidor Apache independiente. En este caso decidí utilizar un servidor Apache independiente estando en ambiente de desarrollo. Lo pueden descargar aquí. Asegúrense de descargar el binario (MSI Installer).
  2. mod_wsgi. Este será el módulo que se instalará en Apache el cual se encargará de manejar todos los request que sean enviados a nuestra aplicación web que utiliza Django. Este lo pueden descargar de aquí. Verifiquen también que están descargando el binario para Windows. En este caso utilizaremos el mod_wsgi para Apache 2.2 y Python 2.7.
  3. Python v. 2.7. Dado que lo que deseamos es crear aplicaciones web utilizando Python, debemos tenerlo instalado en nuestro servidor web. Puedes descargar el instalador para Windows aquí. Nuevamente asegúrense de estar descargando el binario (MSI Installer).
  4. Django v. 1.3.1. Debes de descargar el instalador de Django para Windows. Este instalador lo puedes descargar aquí. En esta página encontrarás el archivo con extensión tar.gz, el cual puede ser descomprimido con 7-zip o WinRAR. Este es el framework que deseamos utilizar para crear nuestras aplicaciones web.
INICIANDO LA INSTALACION

INSTALANDO APACHE

Para empezar debemos de instalar el servidor web. Por lo que nos dirigimos a donde guardamos el instalador que descargamos de Apache. Damos doble clic sobre él, para iniciar con la instalación. Lamentablemente por el momento ya tengo instalado Apache, por lo que no tengo screenshots de la instalación, pero creo que el instalar el servidor web no presentará mayores dificultades.

Para comprobar que la instalación se ha llevado a cabo correctamente, realiza la siguiente verificación:

Valida que el servidor web se está ejecutando. Esto lo puedes hacer viendo en la barra de tareas si está un icono igual a este:


Debe de mostrar el triangulo en color verde. Si muestra un cuadrado en color rojo en vez de este, es que tu instalación tuvo problemas.

Posteriormente abre el navegador web que utilices y escribe en barra de direcciones el texto “localhost” y presionar la tecla Enter.

Debe de mostrarse la siguiente pantalla.

Con esto sabrás que ya está listo tu servidor web.

INSTALANDO PYTHON

Para instalar Python nuevamente nos dirigimos a la ruta en donde guardamos el instalador y damos doble clic sobre de él y realizamos la instalación. Lamentablemente en este caso ya tengo instalado Python también, por lo que no tengo screenshots por el momento.

Es muy importante recordar o escribir en que ruta se está instalando Python. En mi caso le indique al instalador que me instalara Python en la ruta “C:\”. Esto se indica durante el proceso de instalación en donde el instalador da la opción de seleccionar la ruta donde se desea instalar Python.

Finalizando la instalación deben de verificar que se haya instalado correctamente Python. Para esto deben de abrir una consola de comandos (Inicio > Ejecutar > cmd) y escribir la palabra Python, y les debe de mostrar el siguiente texto:


Si el mensaje que les muestra es algo parecido a: “Python” no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Significa que debemos de agregar a la variable de entorno PATH (o Path) la ruta en donde se encuentra el archivo python.exe. En mi caso este archivo se encuentra en la ruta “C:\Python27”.


Recuerda que debes de agregar un punto y coma (;) para separar los valores de la variable.

Ahora cierra la consola que abriste y abre una nueva (esto es muy importante, ya que si intentas hacerlo en la misma consola no tomara los cambios que le has hecho a la variable de entorno) y vuelve a teclear el texto “Python” y presiona la tecla Enter. Te deberá mostrar el prompt de Python.

Para salir del prompt de Python teclea “exit()” y presiona la tecla Enter o presiona Ctrl+C.

INSTALANDO MOD_WSGI

Ahora vamos a instalar el módulo para poder utilizar Python. Extrae el archivo que se encuentra dentro del instalador que descargaste de MOD_WSGI. Renómbralo el archivo de modo que el nombre deje de ser “mod_wsgi-win32-ap22py27-3.3.so” (en mi caso) y ahora tenga el nombre “mod_wsgi.so”.

Dirígete a la carpeta de Apache en donde se encuentran los módulos que utiliza Apache y pega allí el archivo mod_wsgi.so. En mi caso esta carpeta se encuentra en la ruta “C:\Apache Software Foundation\Apache2.2\modules”.

Una vez el módulo se encuentre allí, debemos de configurar Apache para que al iniciarse cargue este módulo.

Esto lo hacemos modificando el archivo httpd.conf. Este archivo lo pueden encontrar dentro de la carpeta “conf” de su instalación de Apache. En mi caso el archivo se encuentra en la ruta “C:\Apache Software Foundation\Apache2.2\conf”. Para la versión de Apache que estamos utilizando lo único que debemos de hacer es agregar la línea:

LoadModule wsgi_module modules/mod_wsgi.so

En la sección del archivo en donde se cargan los módulos de Apache. En mi caso lo agregue en la forma como se muestra en la línea 129.


Finalmente lo que haremos será reiniciar los servicios de Apache y con esto deberá de quedar ya instalado el módulo.

Para validar que la instalación fue llevada a cabo correctamente el servidor Apache debe de iniciarse sin problemas y validar el archivo de error.log de Apache. Este archivo se encuentra en mi caso en la ruta “C:\Apache Software Foundation\Apache2.2\logs”.

Dentro de este archivo se debe de validar que se muestren el texto que se muestra en las líneas 971 y 972.


Y FINALMENTE… INSTALANDO DJANGO

Nos dirigimos a la ruta en donde descargamos el instalador de Django. Extraemos el contenido del archivo en la ruta que queramos.

Posteriormente abrimos una consola de comandos y navegamos hasta la ruta en donde descomprimimos el contenido del archivo. Estando en esta carpeta escribimos el texto “python setup.py install” y se iniciara la instalación de Django.

Cuando finalice la instalación de Django debemos de agregar a la variable de entorno PATH (o Path) la ruta en donde se encuentran los comandos que utiliza Django que fueron creados al realizar la instalación. Estos archivos se encuentran dentro de la carpeta donde se instaló Python. En mi caso la ruta es la siguiente “C:\Python27\Lib\site-packages\django\bin”.


Deberemos de corroborar que Python se está logrando comunicar con Django, por lo que procederemos a abrir una consola de comandos de Windows y escribir “Python” presionamos la tecla Enter, con esto entraremos al prompt de Python. Ahora escribimos el texto “import django” y presionamos la tecla Enter, posteriormente escribimos el texto “print django.get_version()” y presionamos Enter nuevamente y deberá mostrar la versión que tenemos instalada de Django, como se muestra a continuación.


QUE SIGUE…

Con esto ya tenemos instalado todo el ambiente para poder crear aplicaciones web utilizando Python y Django. En el siguiente post mostraré como crear y configurar aplicaciones utilizando Django.

Espero haberles sido de ayuda y nos leemos.

jueves, 9 de diciembre de 2010

CARÁCTER UNDERSCORE (_) EN SENTENCIA LIKE EN PL/SQL

Muchas veces hemos utilizado la sentencia LIKE en SQL para realizar filtros en consultas y encontrar los registros que tienen el campo de filtro similar (LIKE) a lo que necesitamos encontrar. Por ejemplo, suponiendo que tenemos una tabla donde almacenamos la información de personas y deseamos encontrar a todas las personas que dentro de su nombre se encuentran la palabra LUIS, nuestra sentencia SQL quedaría de la siguiente forma:

SELECT *
FROM PERSONA
WHERE NOMBRE LIKE ‘%LUIS%’;

En este caso el carácter porcentaje (%) es un carácter especial de SQL que junto con la sentencia LIKE nos ayuda a indicar que los caracteres que precedan o que sigan a una secuencia de caracteres no se tomaran en cuenta. En el caso de la consulta anterior no importa que caracteres existan antes y después de la palabra LUIS en el valor del campo, siempre que exista esta secuencia de caracteres se dará como verdadera la condición.

Pero que ocurre cuando tenemos nombres que utilizan el carácter underscore? Por ejemplo, si tenemos una lista de productos, en los que los códigos son nombres compuestos por underscore, como por ejemplo P_A_123, P_AB_234, P_AC_345, etc., encontraremos que al momento de ejecutar una sentencia como la siguiente:


SELECT *
FROM PRODUCTOS
WHERE CODIGO LIKE ‘P_A_%’;


No nos retornara los registros que deseamos, si no que nos devolverá como resultado el listado de todos los registros ignorando por completo el ultimo underscore (_), pero ¿porque ocurre esto? Esto es debido a que el carácter underscore (_) dentro de SQL en algunas sentencias es utilizado como un carácter especial, es por esta razón que se debe de especificar dentro de la sentencia LIKE que el carácter underscore  (_) debe de ser tomado con su valor literal, esto se logra modificando la sentencia anterior de la siguiente forma:


SELECT *
FROM PRODUCTOS
WHERE CODIGO LIKE ‘P\_A\_%’ ESCAPE ‘\’;


De este modo lograremos obtener el resultado deseado que en este caso será únicamente el registro con el código igual P_A_123.

martes, 26 de octubre de 2010

DEBUGGEANDO TRIGGERS EN ORACLE

El dia de hoy me vi en la obligacion de debuggear un trigger en Oracle, utilizando Oracle SQL Developer, por la simple razon de que no me llevo muy bien con Oracle SQL*Plus y que el instalar otro cliente para la base de datos tomaria mucho tiempo, encontre este statement para poder obtener los errores que estan ocurriendo al momento de ejecutar un trigger.


SELECT LINE, POSITION, TEXT
  FROM USER_ERRORS
 WHERE NAME = 'MI_TRIGGER'
   AND TYPE = 'TRIGGER'
 ORDER BY SEQUENCE;



En este caso la palabra MI_TRIGGER debe de ser sustituido con el nombre del trigger del cual desean visualizar los errores.

miércoles, 18 de agosto de 2010

Formateando Codigo Fuente en Blogger

Desde hace mucho tiempo atras, aunque no de forma continua venia buscando como poder formatear codigo fuente en mis entradas del blog, pero no encontraba una forma funcional de hacerlo, quiza no soy muy buen buscador :(


Finalmente el dia de hoy encuentro el SyntaxHighlighter, el cual es un resaltador de sintaxis de codigo completamente independiente, el cual esta conformado por un conjunto de archivos JavaScript y hojas de estilo, con soporte, a mi juicio, para una buena cantidad de lenguajes de programacion, y lo mejor de todo... completamente gratuito y completamente compatible con Blogger :)


La integracion con Blogger esta descrita en ingles aqui, estas instrucciones fueron las que a creo explican de manera mas completa la integracion de SyntaxHighlighter con Blogger.


Así que para todas aquellas personas que aun no han encontrado una manera de dar formato a su código fuente en Blogger, acá tienen como hacerlo.