Ir al contenido principal

Utilizar instant client con TOAD (Win) Act:2018

Siempre es una molestia tener que instalar el pesado cliente de Oracle en una máquina en la cual requiramos utilizar de forma rápida.

¿Te gustaría poder insertar una usb, descomprimir un archivo y casi al instante poder utilizar el cliente de Oracle? Esto ya es posible utilizando el instant client de Oracle, lo pueden descargar de esta página aún si no tienen acceso a metalink, hace falta darse de alta en Oracle pero esto se hace de forma rápida y gratuita.

Para utilizarlo, únicamente es necesario descomprimir el cliente en un subdirectorio, por defecto se puede utilizar el propuesto c:\instantclient_11_1 en el caso de la última versión, sin embargo noté que TOAD no encontraba la instalación.

Para lograr que Quest TOAD for Oracle funcione hacen falta dos cosas.

Primero es necesario crear un archivo TNSNAMES.ORA en el mismo directorio con las entradas correspondientes a nuestras bases de datos, sin embargo se puede crear vacío. Podemos acceder a Oracle utilizando el método de conexión directa de las últimas versiones de Oracle.

Segundo, modificar el registro para que refleje que hemos instalado un cliente de Oracle y le permita al TOAD de Oracle tener acceso a los archivos de Oracle.

Esto se hace agregando una entrada al registro bajo HKLM/Software/Oracle y son las siguientes entradas: ORACLE_HOME, TNS_ADMIN y SQLHOME, las tres apuntando al directorio en donde extrajimos el cliente.

Esto se puede lograr con el siguiente código en un archivo .reg que contenga lo siguiente (por ejemplo copien las siguientes líneas en un archivo de nombre instantclient.reg):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_HOME"="C:\\instantclient_11_1"
"TNS_ADMIN"="C:\\instantclient_11_1"
"SQLHOME"="C:\\instantclient_11_1"
Mezclando el archivo anterior con el registro deberá ser suficiente para que el TOAD localice los archivos correspondientes y pueda conectarse con nuestra base de datos.

Si por alguna razón se desea eliminar la instalación de instant cliente, sólo hará falta borrar el directorio y para borrar las entradas del registro, se puede utilizar el siguiente código en un archivo reg (Por ejemplo borra_instantclient.reg):

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]

Espero esto pueda serles de utilidad. Cualquier comentario o pregunta pueden enviarlo a oraclelooke@gmail.com o en esta misma página.

Actualización: [14/Ago/2018] Si estás utilizando un sistema operativo de 64 bits y tu TOAD es de 32 bits la llave cambia a:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE]

Hay que tener en cuenta que necesitarás el Instant Client de 32 bits, también si la versión de TOAD es viejita (me acaban de instalar la 9.6) sólo aceptará versiones viejas del Instant Client, en mi caso la 11g ya que la 12c la ignoró por completo.



Comentarios

  1. Excelente aporte, vague por todo internet buscando una forma de conectar toad sin instalar el cliente, GRAN APORTE

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Mejorar el rendimiento de una actualización con Bulk Collect

Hace unos días nos llegó una solicitud para mejorar el rendimiento de una actualización que corre sobre una tabla relativamente grande, de alrededor de 350 Gb, particionada pero esta actualización en específico no está optimizada para hacer uso de la estructura ni los índices existentes. Usualmente iniciamos por hacer una tabla intermedia de manera temporal, sobre la que corre un cursor que va lanzando actualizaciones. Se le rebajó algo de tiempo pero recordé que se puede optimizar este tipo de operaciones utilizando una operación que hace uso de las colecciones conocida como bulk collect. Para utilizar el bulk collect, se necesita primero crear una variable de tipo tabla donde se meterán los datos llave a utilizar para la actualización. Bulk collect tiene una opción llamada limit, que limita la cantidad de registros que se guardan en la colección para no acabarnos la memoria de programa en caso de ser millones de registros. Después de esto, se utiliza una operación...

Cláusula WITH y hint MATERIALIZE

Hace unos días me llegó una consulta con una cláusula 'WITH' que presentaba problemas con la ejecución, tomaba demasiado tiempo. Para los que no están familiarizados, aquí explico cómo funciona la cláusula WITH. Cláusula WITH La cláusula WITH nació en el estándar SQL 99 y es un poco críptico ya que se presenta con una sintaxis reversa de los queries normales, se utiliza para mejorar las consultas anidadas. Utilizando el ejemplo de Oracle con el esquema SCOTT, aquí estan los queries: SELECT e.ename AS employee_name, dc.dept_count AS emp_dept_count FROM emp e JOIN (SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) dc ON e.deptno = dc.deptno; Modificando para utilizar WITH queda así: WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) SELECT e.ename AS employee_name, dc.dept_count AS emp_dept_count FROM emp e JOIN dept_count dc ON e.deptno = dc....

Extraer un elemento de XML con EXTRACT desde una tabla en Oracle con Namespace.

Ejemplo con una tabla con campo XML CREATE TABLE mytablechar ( id , xmlcolumn ) AS SELECT 1 , '<report xmlns:nsl="http://xmlns.oracle.com/ns/order"> <nsl:InquireUnifiedCustomerProfileByServiceLocationRequest> <AccountIdentifier> <AddressIdentifier> <AddressId>MyAddress 1020, North Hampton, Va</AddressId> <FullCriteria>1</FullCriteria> </AddressIdentifier> </AccountIdentifier> </nsl:InquireUnifiedCustomerProfileByServiceLocationRequest> </report>' FROM DUAL ; WITH xmlData AS ( SELECT XMLTYPE ( t . xmlcolumn ) xml FROM mytablechar t where t . id = 1 ) SELECT x . xml . EXTRACT ( '/report/ns1:InquireUnifiedCustomerProfileByServiceLocationRequest/AccountIdentifier/AddressIdentifier/addressId' , 'xmlns:ns1="http://xmlns.oracle.com/ns/order"' ). getStringVal () FROM xmlData x ; CREATE TABLE mytableclob ( id numbe...