<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14547184</id><updated>2012-01-25T15:04:25.868+01:00</updated><title type='text'>El blogoracle de Javier Morales</title><subtitle type='html'>Artículos, opiniones, documentos técnicos, scripts, etc.
Administración y Desarrollo Oracle.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14547184.post-6102329362030501346</id><published>2011-06-23T17:03:00.001+02:00</published><updated>2011-06-23T17:05:45.242+02:00</updated><title type='text'>Instalación Oracle Grid Control 11g para Solaris/Linux plataforma 64bit.</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;u&gt;INGREDIENTES:&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Java versión 1.6u18&lt;/u&gt;&amp;nbsp; (Descargar del archivo histórico de versiones antiguas de Java)&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.oracle.com/technetwork/java/archive-139210.html"&gt;http://www.oracle.com/technetwork/java/archive-139210.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.4pt;"&gt;NOTA: En Solaris es necesario descargar el bundle de JDK 32bit y las librerías de 64bit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt;"&gt;Java SE Development Kit 6u18&lt;br /&gt;&lt;a href="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u18-solaris-sparcv9.sh?BundledLineItemUUID=daiJ_hCvN3UAAAEwgzIpHo3E&amp;amp;OrderID=25aJ_hCv_DIAAAEwXDIpHo3E&amp;amp;ProductID=Rp1IBe.pezQAAAElSytRSbJV&amp;amp;FileName=/jdk-6u18-solaris-sparcv9.sh"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;jdk-6u18-solaris-sparcv9.sh&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif; font-size: 12pt;"&gt;Java SE Development Kit 6u18&lt;br /&gt;&lt;a href="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u18-solaris-sparcv9.tar.Z?BundledLineItemUUID=0jGJ_hCv_SUAAAEwjzIpHo3E&amp;amp;OrderID=25aJ_hCv_DIAAAEwXDIpHo3E&amp;amp;ProductID=Rp1IBe.pezQAAAElSytRSbJV&amp;amp;FileName=/jdk-6u18-solaris-sparcv9.tar.Z"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;jdk-6u18-solaris-sparcv9.tar.Z&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Weblogic 10.3.2&lt;/u&gt; (Descargar del archivo histórico de versiones de Weblogic)&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html"&gt;http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Oracle11gR2 (11.2.0.2)&lt;/u&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Oracle Grid Control 11.1.0.1&lt;/u&gt;&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;u&gt;PASOS A SEGUIR:&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;1.- Instale la versión de java en un directorio a su gusto, y compruebe la versión.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;oracle@leg93uxgrid:~$ &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: #365f91;"&gt;/u01/app/oracle/java/jdk1.6.0_18/bin/java -version&lt;/span&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;java version "1.6.0_18"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Java(TM) SE Runtime Environment (build 1.6.0_18-b07)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;2.- Tras comprobar con un xclock que las Xwindows están habilitadas, ejecute el weblogic invocando el java recién instalado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;oracle@leg00uxgrid:~$ &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: #365f91;"&gt;/u01/app/jdk-6u18/jdk1.6.0_18/bin/java -d64 -jar /software/wls1032_generic.jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Extracting 0%..................................................................................100%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.4pt;"&gt;2.1.- Escoger “Typical” con las opciones por defecto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.4pt;"&gt;2.2.- En la última pantalla “Installation Complete” &lt;u&gt;DESACTIVAR&lt;/u&gt; la opción de “Run Quickstar”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.4pt;"&gt;2.3.- Done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;4.- &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;u&gt;SOLO EN LINUX.&lt;/u&gt;&lt;/b&gt; Instalar el parche de Weblogic WDJ7&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;oracle@leg00uxgrid:~$ &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: #365f91;"&gt;/u01/app/Middleware/utils/bsu/bsu.sh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;5.- Verifique los parches e instale el software de Oracle11g.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;6.- Cree una base de datos para el respositorio del Grid Control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.1.- Escoger el modo “Personalizado” y desmarcar la opción “Configure Enterprise Manager”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.2.- En el apartado de componentes, desmarcar “Enterprise Manager Repository”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.3.- Definir los parámetros de procesos a más de 500 y session_cachad_cursors a 550&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.- Aumentar el datafile de UNDO a 2Gb&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;7.- Desactivar dbconsole y el repositorio de Enterprise Manager de la base de datos recién creada en caso de que exista (al haber ejecutado incorrectamente el paso 6.1).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;oracle@leg93uxgrid:~$ &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US" style="color: #365f91; font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;emca -deconfig dbcontrol db -repos drop&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="color: #365f91; font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;STARTED EMCA at 13/06/2011 13:17:30&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;EM Configuration Assistant, Version 11.2.0.0.2 Production&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Copyright (c) 2003, 2005, Oracle.&amp;nbsp; All rights reserved.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Enter the following information:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Database SID: omsgrid&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Listener port number: 1521&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Password for SYS user:&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Password for SYSMAN user:&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;----------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;WARNING : While repository is dropped the database will be put in quiesce mode.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;----------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;Do you wish to continue? [yes(Y)/no(N)]: y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-US"&gt;8.- Habilitar el usuario DBSNMP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;SQL&amp;gt; alter user DBSNMP account unlock;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;User altered.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;SQL&amp;gt; alter user DBSNMP identified by grid13c1sa;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 8pt; line-height: 115%;"&gt;User altered.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;9.-&amp;nbsp; Instalar Oracle Enterprise Manager Grid Control 11g.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-6102329362030501346?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/6102329362030501346/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=6102329362030501346' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/6102329362030501346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/6102329362030501346'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2011/06/instalacion-oracle-grid-control-11g.html' title='Instalación Oracle Grid Control 11g para Solaris/Linux plataforma 64bit.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-993150816549637152</id><published>2011-05-04T14:07:00.001+02:00</published><updated>2011-05-04T14:11:20.182+02:00</updated><title type='text'>Etiquetado de discos para ASM en Solaris.</title><content type='html'>&lt;i&gt;* Con la ayuda de Sergio Ramírez en la parte de Solaris. Muchísimas gracias, compañero!.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cuando he tenido que etiquetar discos en linux para que el ASM los reconozca para candidatos, la librería asmlib me lo ha puesto muy fácil, pues solamente era necesario marcar los discos de la siguiente forma.&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host Server]#&amp;nbsp;&lt;b&gt;/etc/init.d/oracleasm createdisk ASMDISK1_DATA /dev/mapper/racdb_asm1&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Marking disk "ASMDISK1_DATA" as an ASM disk: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [ &amp;nbsp;OK &amp;nbsp;]&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host Server]#&amp;nbsp;&lt;b&gt;/etc/init.d/oracleasm createdisk ASMDISK1_FRA &amp;nbsp;/dev/mapper/racdb_asm2&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Marking disk "ASMDISK1_FRA" as an ASM disk: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[ &amp;nbsp;OK &amp;nbsp;]&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@cun0401 Server]#&amp;nbsp;&lt;b&gt;/etc/init.d/oracleasm listdisks&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ASMDISK1_DATA&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ASMDISK1_FRA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Pero esta librería no está disponible para Solaris y el proceso de etiquetar los discos para que ASM los vea como candidatos no resulta tan evidente como se describe en la documentación de instalación de grid en Solaris.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;En concreto, una vez los discos están visibles y los dispositivos son del propietario grid:dba , en el comando format hay que modificar los volúmenes tal como se muestra.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;root@host:~$ &lt;b style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;format&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Searching for disks...done&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;AVAILABLE DISK SELECTIONS:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 0. c0t0d0&lt;sun146g 14087="" 24="" 2="" 848="" alt="" cyl="" hd="" sec=""&gt;&lt;/sun146g&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 1. c0t1d0&amp;nbsp;&lt;sun146g 14087="" 24="" 2="" 848="" alt="" cyl="" hd="" sec=""&gt;Solaris&lt;/sun146g&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2. c2t600A0B800029B03400001B474BE28D9Bd0&lt;stk-flexline380-0760 2="" 510="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b800029b03400001b474be28d9b&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;u&gt;3.&amp;nbsp;c2t600A0B800029B034000022A64DB65A53d0&lt;/u&gt;&lt;stk-flexline380-0760 2="" 51198="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/scsi_vhci/ssd@g600a0b800029b034000022a64db65a53&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt; &amp;nbsp; --&amp;gt; Este es el disco a añadir&lt;/span&gt;&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 4. c2t600A0B800029B034000020104C43B3C1d0&lt;stk-flexline380-0760 128="" 2="" 51198="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b800029b034000020104c43b3c1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 5. c2t600A0B800029B034000021104C612E6Dd0&lt;stk-flexline380-0760 2="" 51198="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b800029b034000021104c612e6d&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 6. c2t600A0B8000269A3200007F3F4BE25284d0&lt;stk-flexline 380-0760-20.00gb=""&gt;&lt;/stk-flexline&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a3200007f3f4be25284&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7. c2t600A0B8000269A32000084B24CC8D1D5d0&lt;drive available="" not=""&gt;&lt;/drive&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a32000084b24cc8d1d5&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 8. c2t600A0B8000269A32000084C74CD0F3D2d0&lt;drive available="" not=""&gt;&lt;/drive&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a32000084c74cd0f3d2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 9. c2t600A0B8000269A320000802A4BF3820Ad0&lt;stk-flexline 380-0760-15.00gb=""&gt;&lt;/stk-flexline&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a320000802a4bf3820a&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;10. c2t600A0B8000269A320000834C4C439596d0&lt;stk-flexline380-0760 2="" 510="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a320000834c4c439596&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;11. c2t600A0B8000269A320000834F4C43960Fd0&lt;stk-flexline380-0760 2="" 510="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/scsi_vhci/ssd@g600a0b8000269a320000834f4c43960f&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Specify disk (enter its number):&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="background-color: blue;"&gt;3 --&amp;gt; corresponde al identificador del disco a añadir&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Select partitioning base:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0. Current partition table (original)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1. All Free Hog&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Choose base (enter number) [0]? &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;1 &amp;nbsp; --&amp;gt; para modificarlas todas las particiones&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;Part &amp;nbsp; &amp;nbsp; &amp;nbsp;Tag &amp;nbsp; &amp;nbsp;Flag &amp;nbsp; &amp;nbsp; Cylinders &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Size &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blocks&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; root &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; swap &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;2 &amp;nbsp; &amp;nbsp; backup &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - 51197 &amp;nbsp; &amp;nbsp; &amp;nbsp;100.00GB &amp;nbsp; &amp;nbsp;(51198/0/0) 209707008&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;3 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;4 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;5 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usr &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;7 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Do you wish to continue creating a new partition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;table based on above table[yes]? &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Yes &amp;nbsp;-&amp;gt; Confirmamos que deseamos crear nuestras particiones.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Free Hog partition[6]? &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;7 &amp;nbsp;-&amp;gt; Determina que partición es la que almacena el espacio libre&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '0' [0b, 0c, 0.00mb, 0.00gb]: &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;500mb &amp;nbsp;-&amp;gt; En la partición 0 definimos un tamaño de 500mb la que&amp;nbsp;necesita ASM para su gestión.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '1' [0b, 0c, 0.00mb, 0.00gb]: &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '3' [0b, 0c, 0.00mb, 0.00gb]:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '4' [0b, 0c, 0.00mb, 0.00gb]:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '5' [0b, 0c, 0.00mb, 0.00gb]:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter size of partition '6' [0b, 0c, 0.00mb, 0.00gb]: &lt;span class="Apple-style-span" style="background-color: blue; color: white;"&gt;99.50gb &amp;nbsp;-&amp;gt; Configuramos el resto del tamaño en una de las&amp;nbsp;particiones&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Part &amp;nbsp; &amp;nbsp; &amp;nbsp;Tag &amp;nbsp; &amp;nbsp;Flag &amp;nbsp; &amp;nbsp; Cylinders &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Size &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blocks&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; root &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - &amp;nbsp; 249 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;500.00MB&lt;/b&gt; &amp;nbsp; &amp;nbsp;(250/0/0) &amp;nbsp; &amp;nbsp; 1024000&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; swap &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;2 &amp;nbsp; &amp;nbsp; backup &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - 51197 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;100.00GB&lt;/b&gt; &amp;nbsp; &amp;nbsp;(51198/0/0) 209707008&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;3 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;4 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;5 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usr &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; 250 - 51193 &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;99.50GB&lt;/b&gt; &amp;nbsp; &amp;nbsp;(50944/0/0) 208666624&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;7 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; 51194 - 51197 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;8.00MB&lt;/b&gt; &amp;nbsp; &amp;nbsp;(4/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16384&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Okay to make this the current partition table[yes]? &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Yes &amp;nbsp;-&amp;gt; Confirmamos que esta correcto tal cual la hemos definido&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Enter table name (remember quotes): &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;"asm" &amp;nbsp;-&amp;gt; Le ponemos un nombre al modelo de configuración de la tabla, para posteriores discos para la ASM del mismo tamaño.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Ready to label disk, continue? &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;yes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;partition&amp;gt; &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;q --&amp;gt; salimos del menú de partición&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;FORMAT MENU:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;disk &amp;nbsp; &amp;nbsp; &amp;nbsp; - select a disk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type &amp;nbsp; &amp;nbsp; &amp;nbsp; - select (define) a disk type&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;partition &amp;nbsp;- select (define) a partition table&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;current &amp;nbsp; &amp;nbsp;- describe the current disk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;format &amp;nbsp; &amp;nbsp; - format and analyze the disk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;repair &amp;nbsp; &amp;nbsp; - repair a defective sector&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;label &amp;nbsp; &amp;nbsp; &amp;nbsp;- write label to the disk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;analyze &amp;nbsp; &amp;nbsp;- surface analysis&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;defect &amp;nbsp; &amp;nbsp; - defect list management&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;backup &amp;nbsp; &amp;nbsp; - search for backup labels&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verify &amp;nbsp; &amp;nbsp; - read and display labels&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;save &amp;nbsp; &amp;nbsp; &amp;nbsp; - save new disk/partition definitions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inquiry &amp;nbsp; &amp;nbsp;- show vendor, product and revision&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;volname &amp;nbsp; &amp;nbsp;- set 8-character volume name&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!&lt;cmd&gt; &amp;nbsp; &amp;nbsp; - execute &lt;cmd&gt;, then return&lt;/cmd&gt;&lt;/cmd&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;quit&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;format&amp;gt; &lt;span class="Apple-style-span" style="background-color: blue;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;verify &amp;nbsp;-&amp;gt; Mediante el comando verify comprobamos que esta correcto.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Primary label contents:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Volume name = &amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ascii name &amp;nbsp;= &lt;stk-flexline380-0760 2="" 51198="" 64="" alt="" cyl="" hd="" sec=""&gt;&lt;/stk-flexline380-0760&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;pcyl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 51200&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ncyl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 51198&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;acyl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp; &amp;nbsp;2&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;nhead &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;nbsp; 64&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;nsect &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;nbsp; 64&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Part &amp;nbsp; &amp;nbsp; &amp;nbsp;Tag &amp;nbsp; &amp;nbsp;Flag &amp;nbsp; &amp;nbsp; Cylinders &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Size &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blocks&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; root &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - &amp;nbsp; 249 &amp;nbsp; &amp;nbsp; &amp;nbsp;500.00MB &amp;nbsp; &amp;nbsp;(250/0/0) &amp;nbsp; &amp;nbsp; 1024000&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; swap &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;2 &amp;nbsp; &amp;nbsp; backup &amp;nbsp; &amp;nbsp;wu &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - 51197 &amp;nbsp; &amp;nbsp; &amp;nbsp;100.00GB &amp;nbsp; &amp;nbsp;(51198/0/0) 209707008&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;3 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;4 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;5 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usr &amp;nbsp; &amp;nbsp;wm &amp;nbsp; &amp;nbsp; 250 - 51193 &amp;nbsp; &amp;nbsp; &amp;nbsp; 99.50GB &amp;nbsp; &amp;nbsp;(50944/0/0) 208666624&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;7 unassigned &amp;nbsp; &amp;nbsp;wm &amp;nbsp; 51194 - 51197 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8.00MB &amp;nbsp; &amp;nbsp;(4/0/0) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16384&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;format&amp;gt; q&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;Ahora, desde la interfaz gráfica (asmca) o desde sqlplus, Oracle es capaz de identificar los discos como candidatos para añadirlos al diskgroup ASM que corresponda.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-teiyZo19IQI/TcFB8VgymKI/AAAAAAAAABc/FDqhg9uyjzA/s1600/asm+-+add+disk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://3.bp.blogspot.com/-teiyZo19IQI/TcFB8VgymKI/AAAAAAAAABc/FDqhg9uyjzA/s320/asm+-+add+disk.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin-top: 4.0pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New';"&gt;-bash-3.00$ sqlplus / as sysasm&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-top: 4.0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;SQL&amp;gt; &lt;span style="color: red;"&gt;select path, name from v$asm_disk;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;PATH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;-------------------------------------------------- ------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;/dev/did/rdsk/d9s6&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;/dev/did/rdsk/d9s7&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;/dev/did/rdsk/d9&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d4s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECOVERY_0000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d22s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATOS_0001&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d18s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCRVOTING_0000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d19s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OCRVOTING_0001&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-top: 4.0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Al aparecer los tres nuevos volúmenes como candidatos, ya es posible añadir el disco al diskgroup desde sqlplus conectado como SYSASM.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;b&gt;SQL&amp;gt; &lt;span style="color: red;"&gt;alter diskgroup DATOS &lt;u&gt;add&lt;/u&gt; disk ‘/dev/did/rdsk/d9s6’;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 9pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-top: 4.0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;b&gt;SQL&amp;gt; &lt;span style="color: red;"&gt;select path, name from v$asm_disk;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;PATH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;-------------------------------------------------- ------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d9s7&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d9&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d4s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RECOVERY_0000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;b&gt;&lt;u&gt;/dev/did/rdsk/d9s6&lt;/u&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATOS_0000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d22s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DATOS_0001&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d18s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCRVOTING_0000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;/dev/did/rdsk/d19s6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCRVOTING_0001&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-993150816549637152?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/993150816549637152/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=993150816549637152' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/993150816549637152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/993150816549637152'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2011/05/etiquetado-de-discos-para-asm-en.html' title='Etiquetado de discos para ASM en Solaris.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-teiyZo19IQI/TcFB8VgymKI/AAAAAAAAABc/FDqhg9uyjzA/s72-c/asm+-+add+disk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-7126016770146330932</id><published>2011-01-27T16:50:00.000+01:00</published><updated>2011-01-27T16:50:38.716+01:00</updated><title type='text'>"La query que tumba la máquina".</title><content type='html'>Hace unos años publiqué un artículo llamado "&lt;a href="http://oraclexperto.blogspot.com/2005/07/plsql-y-ejecuciones-en-host.html"&gt;PL/SQL y ejecuciones en host&lt;/a&gt;" en el que describía el paso a paso para poder, desde PL/SQL, ejecutar código en el sistema operativo.&lt;br /&gt;&lt;br /&gt;Oracle no permite que los procedimientos y funciones puedan acceder al host, pero sí permite llamadas a funciones externas implementadas con C o PASCAL, y redireccionadas como librerías mediante un objeto library.&lt;br /&gt;&lt;br /&gt;Mi intención inicial fue la de crear un procedimiento PL/SQL que realizara un backup en caliente del servidor, realizase un export, import, o cualquier otra invocación a un ejecutable residente en el sistema operativo.&lt;br /&gt;&lt;br /&gt;Hoy he visto una configuración similar en una base de datos en un entorno de producción, que realizan la misma implementación pero mediante una función.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;create or replace&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;FUNCTION sysrun (syscomm IN VARCHAR2)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;RETURN BINARY_INTEGER&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;AS LANGUAGE C&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;NAME "sysrun"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;LIBRARY shell_lib&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;PARAMETERS(syscomm string);&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De este modo, la función retorna un 0 si la llamada al SHELL_LIB se ha ejecutado correctamente, o un número si ha habido un error.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hice esta prueba, y pude constatar un mito: &lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;u&gt;La consulta que tumba el servidor existe!!.&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;tt&gt;SQL&amp;gt; &lt;b&gt;select sysrun('sudo reboot') from dual;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Broadcast message from root (Thu Jan 27           13:16:34 2011):&lt;br /&gt;&lt;br /&gt;The system is going down for reboot NOW!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;SYSTEM.SYSRUN('SUDOREBOOT')&lt;br /&gt;---------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/tt&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-7126016770146330932?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/7126016770146330932/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=7126016770146330932' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/7126016770146330932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/7126016770146330932'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2011/01/la-query-que-tumba-la-maquina.html' title='&quot;La query que tumba la máquina&quot;.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-8150513412584546843</id><published>2010-10-26T10:03:00.000+02:00</published><updated>2010-10-26T10:03:23.666+02:00</updated><title type='text'>Mapa Mental 1: Oracle 10g RAC en Linux</title><content type='html'>En la instalación de un RAC sobre Linux es preciso tener en cuenta las características de la plataforma a los siguientes niveles:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.- Red.&lt;/b&gt; ¿Existen tarjetas de red para conexiones privadas y públicas en todos los nodos? Es preciso configurarlas correctamente para que el cluster pueda manejar las tres direcciones (pública, privada y virtual). ¿Hay redundancia en las tarjetas? ¿está configurado correctamente el bonding?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.- Almacenamiento.&lt;/b&gt; ¿ASM o OCFS2? O uno, u otro. Nunca los dos o una combinación de ambos en el mismo sistema, ya que puede llevar a conflictos. ¿Hay multipath? El almacenamiento con controladoras redundantes debe configurarse correctamente para evitar desastres.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.- Sistema.&lt;/b&gt; ¿Todos los parches están instalados? ¿los parámetros de kernel y límites de sesión están definidos de forma persistente? ¿los privilegios sobre los dispositivos de almacenamiento tienen privilegios sobre root y oracle como corresponde?&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_iWQ-Ik0LCUQ/TMaJ_2gBt9I/AAAAAAAAABM/EFm-ZxA9DTI/s1600/Oracle+RAC+10g.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="173" src="http://4.bp.blogspot.com/_iWQ-Ik0LCUQ/TMaJ_2gBt9I/AAAAAAAAABM/EFm-ZxA9DTI/s400/Oracle+RAC+10g.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;Mapa mental 1: estrella&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Quizás en estos casos pueda ayudar el siguiente mapa mental, a modo de guía paso a paso, adaptándolo a la plataforma y las características del entorno a instalar.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_iWQ-Ik0LCUQ/TMaG81NgPbI/AAAAAAAAABI/yPZkO3f9X_Q/s1600/Oracle+RAC+10g.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/_iWQ-Ik0LCUQ/TMaG81NgPbI/AAAAAAAAABI/yPZkO3f9X_Q/s640/Oracle+RAC+10g.png" width="281" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;Mapa mental 2: vertical&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;u&gt;Los procesos del mapa al detalle&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Verificar red public y privada&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar /sbin/ifconfig&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;El resultado debe ser dos tarjetas de red visibles, una con la dirección publica y otra con la privada (mas el tcploopback)&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 20.0pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configuración Bonding&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Cuando hay redundancia de tarjetas es importante conocer la configuración de bonding para hacer referencia a las tarjetas virtuales y no a las físicas.&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configuración interconnect&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;br /&gt;El interconnect debe estar configurado correctamente para las pruebas de caída de servidores. Los switches deben contemplar las posibles caídas y sus enrutamientos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Registrar entradas /etc/hosts&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Hay que añadir las direcciones IP para publica, privada y virtual.&lt;br /&gt;&lt;br /&gt;La ip virtual no será visible hasta que los servicios de cluster se inicien con el vipca al final de la instalación del clusterware.&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ping entradas /etc/hosts&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ping a los alias públicos y privados, con y sin nombre de dominio&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar storage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear particiones con /sbin/fdisk&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear particiones para OCR, voting y rawdevices para ASM.&lt;br /&gt;&lt;br /&gt;Minimo:&lt;br /&gt;120 Mb para OCR x 2&lt;br /&gt;20 Mb para voting x 3&lt;br /&gt;&lt;br /&gt;Si no se crean particiones, los discos deben estar preparados, así como sus dispositivos.&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Editar /etc/sysconfig/rawdevices&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Asignar privilegios a los rawdevices&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Los dispositivos deben pertenecer al usuario Oracle y tener 660 (ocr) y 664 (voting)&lt;br /&gt;&lt;br /&gt;Una vez creado el clusterware, los ocr pasaran a ser de root, y será necesario hacer persistentes los permisos al arranque en el fichero /etc/rc.d/rc.local&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Habilitar rawdevices nodo 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Propagar configuración nodo 2-3-x&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;El fichero /etc/sysconfig/rawdevices ha de propagarse al resto de nodos.&lt;br /&gt;&lt;br /&gt;Una vez copiado el fichero, hay que actualizar la tabla de partición y habilitar los rawdevices en ese nodo.&lt;br /&gt;&lt;br /&gt;services rawdevices start&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Los rawdevices están habilitados en todos los nodos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear grupos y usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear grupos dba y oinstall&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear usuario oracle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;chmod y chown a usuario&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Definir .bash_profile&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar secure shell&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Generar claves rsa y dsa para concatenar en todos los ficheros authorized_keys de los diferentes nodos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Comprobar ssh transparente entre nodos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configuración OS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configuración Secure Shell&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;El usuario Oracle debe poder hacer ssh entre nodos sin necesidad de contraseña.&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear claves rsa y dsa&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;/usr/bin/ssh-keygen -t rsa&lt;br /&gt;/usr/bin/ssh-keygen -t dsa&lt;br /&gt;&lt;br /&gt;Los ficheros de $HOME/.ssh id_dsa.pub y id_rsa.pub de todos los nodos han de unirse en uno nuevo llamado authorized_keys, que se copiará a los directorios .ssh del usuario oracle para cada nodo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Añadir hosts a known_hosts&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;En cada ssh el sistema preguntará para añadir ese nodo a la lista de know_hosts. Solo se preguntará esta vez y las siguientes conexiones serán transparentes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Test ssh nodos /etc/hosts&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configuración hangcheck-timer&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Según notas 811306.1 y 726833.1&lt;br /&gt;Es necesario añadir la línea&lt;br /&gt;&lt;br /&gt;/sbin/modprobe hangcheck-timer hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1&lt;br /&gt;&lt;br /&gt;Y hacer este cambio permanente al reinicio del servidor en /etc/rc.d/rc.local&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar hugepages&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Según nota 361468.1&lt;br /&gt;Es necesario añadir la siguiente línea a /etc/security/limits.conf&lt;br /&gt;&lt;br /&gt;* hard memlock 5243000&lt;br /&gt;* soft memlock 5243000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar kernel&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar limites shell&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Los limites de shell han de hacerse permanentes en el inicio de sesión. Para ello, hay que añadir la siguiente línea a /etc/pam.d/login&lt;br /&gt;&lt;br /&gt;session required /lib/security/pam_limits.so&lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;rda hcve para cada nodo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Cluvfy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo hardware y OS&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;./runcluvfy.sh stage -post hwos -n nodo1,nodo2,nodoN - verbose&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo conectividaf&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;./runcluvfy.sh comp nodecon -n nodo1,nodo2,nodoN - verbose&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: #199503; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo usuario&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;./runcluvfy.sh comp admprv -n nodo1,nodo2,nodoN - verbose -o user_equiv&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 119.25pt; mso-list: l0 level3 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 108.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Wingdings; font-size: 10.0pt; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Wingdings; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;§&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;PreCheck configuración servicios de cluster&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;./runcluvfy.sh stage -pre crsinst -n nodo1,nodo2,nodoN -r 10gR2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar runInstaller clusterware software&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Definir variables de entorno para ORA_CRS_HOME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Seguir nota 414163.1 en RHL5 para errores conocidos&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Existen tres errores conocidos en la instalación de RAC 10.2.0.1 en RHL5&lt;br /&gt;&lt;br /&gt;- ejecutar el runinstaller con -ignoreSysPrereqs&lt;br /&gt;- editar vipca y svrctl para añadir la línea "unset LD_ASSUME_KERNEL"&lt;br /&gt;- La ejecución de root.sh fallará en el ultimo nodo y habrá que ejecutar el vipca manualmente tras configurar las tarjetas de red con&lt;br /&gt;&lt;br /&gt;&lt;crs_home&gt;/bin # ./oifcfg setif -global eth0/192.168.1.0:public&lt;br /&gt;&lt;crs_home&gt;/bin # ./oifcfg setif -global eth1/10.10.10.0:cluster_interconnect&lt;br /&gt;&lt;crs_home&gt;/bin # ./oifcfg getif&lt;br /&gt;eth0 192.168.1.0 global public&lt;br /&gt;eth1 10.10.10.0 global cluster_interconnect&lt;o:p&gt;&lt;/o:p&gt;&lt;/crs_home&gt;&lt;/crs_home&gt;&lt;/crs_home&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo servicios&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar crs_stat -t&lt;br /&gt;&lt;br /&gt;Los servicios de cluster deben estar arrancados.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: yellow; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar patchset 10.2.0.5 clusterware&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar la versión mas reciente del patchset.&lt;br /&gt;Mucho mejor antes de que haya ASM y DB's que deban pararse y parchearse.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar runInstaller ASM software&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Definir variables de entorno para ORA_ASM_HOME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar asmlib&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar librerias asmlib&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Configurar multipath para ASM&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Seguir nota 564580.1 si hay redundancia de controladores de disco por multipath&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Creación de diskgroups&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear dos diskgroups: uno para DATA y el otro para FRA&lt;br /&gt;&lt;br /&gt;DG_DATA_1&lt;br /&gt;DG_FRA_1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo servicios&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar crs_stat -t&lt;br /&gt;&lt;br /&gt;Los servicios de cluster deben estar arrancados incluyendo los de ASM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: yellow; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar patchset 10.2.0.5 ASM&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar la versión mas reciente del patchset.&lt;br /&gt;Mucho mejor antes de que haya ASM y DB's que deban pararse y parchearse.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 47.25pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: Symbol; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar runInstaller DB software&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Definir variables de entorno para ORACLE_HOME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff7f00; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Crear bbdd RAC usando asm&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Seguir nota 564580.1 si hay redundancia de controladores de disco por multipath&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #199503; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Chequeo servicios&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Ejecutar crs_stat -t&lt;br /&gt;&lt;br /&gt;Los servicios de cluster deben estar arrancados incluyendo los de ASM y los de base de datos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-left: 83.25pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt; text-indent: -18.0pt;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-bidi-font-style: italic; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-language: ES;"&gt;&lt;span style="mso-list: Ignore;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: yellow; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar patchset 10.2.0.5 ASM&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: grey; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-size: 4.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;"&gt;Instalar la versión mas reciente del patchset.&lt;br /&gt;Mucho mejor antes de que haya ASM y DB's que deban pararse y parchearse.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-8150513412584546843?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/8150513412584546843/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=8150513412584546843' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/8150513412584546843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/8150513412584546843'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2010/10/mapa-mental-1-oracle-10g-rac-en-linux.html' title='Mapa Mental 1: Oracle 10g RAC en Linux'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_iWQ-Ik0LCUQ/TMaJ_2gBt9I/AAAAAAAAABM/EFm-ZxA9DTI/s72-c/Oracle+RAC+10g.bmp' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-2931335494028131550</id><published>2010-06-29T17:09:00.000+02:00</published><updated>2010-06-29T17:09:52.811+02:00</updated><title type='text'>Plagiado.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Alguien llamado &lt;a href="http://www.blogger.com/profile/01142900295023090513"&gt;Fernando Valenzuela&lt;/a&gt; me ha plagiado unos siete artículos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En la mayoría ni siquiera ha cambiado la tipografía, ni los datos de ejemplo, ni comentarios personales como dedicatorias o alusiones a las personas que motivaron la creación de esa entrada, o los responsables de las peticiones o consultas.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Me parece algo muy grave, sobre todo teniendo en cuenta que todo el contenido que hay publicado en mi blog está &lt;b&gt;bajo &lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/"&gt;una licencia creativa&lt;/a&gt; (Creative Commons) &lt;/b&gt;que permite prácticamente cualquier uso de mi trabajo, o incluso hacer obras derivadas, siempre y cuando se reconozca al autor, y se publique bajo una licencia similar sin provecho comercial.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En concreto, los artículos plagiados son:&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Copiar una Base de datos en Windows&lt;/b&gt;&lt;br /&gt;Original creado el &lt;a href="http://oraclexperto.blogspot.com/2005/07/copiar-una-base-de-datos.html"&gt;29 de Julio de 2005&lt;/a&gt;, y plagiado el &lt;a href="http://fdovalenzuela.blogspot.com/2009/08/copiar-una-base-de-datos-en-windows.html"&gt;31 de agosto de 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acceso a una bbdd MSAccess desde Oracle&lt;/b&gt;&lt;br /&gt;Original creado el &lt;a href="http://oraclexperto.blogspot.com/2006/09/acceso-una-bbdd-msaccess-desde-oracle.html"&gt;8 de Septiembre de 2006&lt;/a&gt; y plagiado el &lt;a href="http://fdovalenzuela.blogspot.com/2009/08/acceso-una-bbdd-msaccess-desde-oracle.html"&gt;31 de agosto de 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Uso de Logminer&lt;/b&gt;&lt;br /&gt;Original creado el &lt;a href="http://oraclexperto.blogspot.com/2006/03/uso-de-logminer.html"&gt;21 de Marzo de 2006&lt;/a&gt; y plagiado el &lt;a href="http://fdovalenzuela.blogspot.com/2009/08/uso-de-logminer.html"&gt;31 de agosto de 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Optimización SQL - varios artículos&lt;/b&gt;&lt;br /&gt;Original creados el &lt;a href="http://optimizacionoracle.blogspot.com/2005/10/otro-producto-cartesiano.html"&gt;25 de Octubre de 2005&lt;/a&gt;, el &lt;a href="http://optimizacionoracle.blogspot.com/2005/10/not-in-vs-not-exists.html"&gt;17 de Octubre de 2005&lt;/a&gt; , el &lt;a href="http://optimizacionoracle.blogspot.com/2005/10/dlo-de-otra-forma.html"&gt;13 de Octubre de 2005&lt;/a&gt; , y el &lt;a href="http://optimizacionoracle.blogspot.com/2005/10/mala-cardinalidad.html"&gt;11 de Octubre de 2005&lt;/a&gt;, y plagiados el 31 de agosto de 2009 &lt;a href="http://fdovalenzuela.blogspot.com/2009/08/optimizacion-de-consultas-sql-en-oracle.html"&gt;aquí&lt;/a&gt; y &lt;a href="http://fdovalenzuela.blogspot.com/2009/08/optimizacion-de-consultas-sql-en-oracle_31.html"&gt;aquí&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-2931335494028131550?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/2931335494028131550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=2931335494028131550' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/2931335494028131550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/2931335494028131550'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2010/06/plagiado.html' title='Plagiado.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-517088455221097782</id><published>2010-06-24T15:35:00.004+02:00</published><updated>2010-06-24T16:24:47.571+02:00</updated><title type='text'>Encriptación de datos desde aplicación.</title><content type='html'>En todos los ejemplos que he encontrado sobre encriptación y desencriptación de datos en Oracle, siempre se usan procedimientos PL/SQL para establecer la seguridad en la base de datos. No he encontrado un sólo ejemplo que permita hacer un insert "encriptado" y una consulta "desencriptada".&lt;br /&gt;&lt;br /&gt;Imaginando el siguiente escenario: Cada usuario tiene una "palabra secreta" para desencriptar su propia información. En la base de datos todo se registra encriptado.&lt;br /&gt;&lt;br /&gt;Para ello, Oracle ofrece dos paquetes:&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;DBMS_OBFUSCATION_TOOLKIT&lt;/span&gt;. A partir de Oracle8i, que soporta encriptación DES y triple DES (Data Encription Standard), y con ciertas limitaciones (por ejemplo, los datos a encriptar han de ser un múltiplo de 8 bytes).&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;DBMS_CRYPTO&lt;/span&gt;. A partir de Oracle10g. Soporta más formas de encriptación, como la AES (Advanced Encription Standard), que sustituye el anterior DES y no hay limitación con el número de carácteres.&lt;br /&gt;&lt;br /&gt;Para mas información, la documentación de Oracle ofrece esta &lt;a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_crypto.htm#BJFFAJCC"&gt;comparativa de funcionalidades&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Uso de DBMS_OBFUSCATION_TOOLKIT&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;El siguiente ejemplo muestra la encriptación de la palabra "SECRETO" (8 bytes) y genera un error al intentar encriptar "SECRETITOS!" (11 bytes)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESEncrypt(input_string=&gt;&lt;b&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;'&lt;wbr&gt;SECRETO!'&lt;/span&gt;&lt;/b&gt;,key_string=&gt;'&lt;wbr&gt;clavedesencript') from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESENCRYPT(INPUT_STRING=&gt;'&lt;wbr&gt;SECRETO!',KEY_STRING=&gt;'CLAVED&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;lr??&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESEncrypt(input_string=&gt;&lt;b&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'&lt;wbr&gt;SECRETITOS!'&lt;/span&gt;&lt;/b&gt;,key_string=&gt;'&lt;wbr&gt;clavedesencript') from dual;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;select DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESEncrypt(input_string=&gt;'&lt;wbr&gt;SECRETITOS!',key_string=&gt;'&lt;wbr&gt;clavedesencript') from dual&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;       *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;ERROR at line 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace; font-weight: bold;"&gt;ORA-28232: invalid input length for obfuscation toolkit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;ORA-06512: at "SYS.DBMS_OBFUSCATION_TOOLKIT_&lt;wbr&gt;FFI", line 21&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;ORA-06512: at "SYS.DBMS_OBFUSCATION_TOOLKIT"&lt;wbr&gt;, line 126&lt;/span&gt;&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El error ORA-28232 corresponde a la longitud inadecuada de la cadena a encriptar. 'SECRETITOS!" tiene 11 carácteres y el paquete está limitado a múltiplos de 8 bytes. Por ejemplo, el número de una tarjeta de crédito.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(input_string=&gt;'1234567812345678',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  2                                            key_string=&gt;'clavedesencript')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  3  from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(INPUT_STRING=&gt;'1234567812345678',KEY_STRING=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  }??X??&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De modo que la desencriptación funciona de igual modo, usando la función DESDecrypt&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESDecrypt(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  2                input_string=&gt;DBMS_&lt;wbr&gt;OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESEncrypt(input_string=&gt;'&lt;wbr&gt;SECRETO!',key_string=&gt;'CLAVE_&lt;wbr&gt;BUENA'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  3               key_string=&gt;'CLAVE_BUENA') from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESDECRYPT(INPUT_STRING=&gt;DBMS_&lt;wbr&gt;OBFUSCATION_TOOLKIT.DESEN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;SECRETO!&lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.DESDecrypt(&lt;br /&gt;  2              input_string=&gt;DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(input_string=&gt;'1111222233334444',key_string=&gt;'CLAVE_BUENA'),&lt;br /&gt;  3             key_string=&gt;'CLAVE_BUENA') from dual;&lt;br /&gt;&lt;br /&gt;DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(INPUT_STRING=&gt;DBMS_OBFUSCATION_TOOLKIT.DESEN&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;1111222233334444&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y si se utiliza una clave distinta, la información &lt;span style="font-weight: bold;"&gt;no se desencriptará adecuadamente&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;SQL&gt; select DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESDecrypt(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  2                input_string=&gt;DBMS_&lt;wbr&gt;OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESEncrypt(input_string=&gt;'&lt;wbr&gt;SECRETO!',key_string=&gt;'CLAVE_&lt;wbr&gt;BUENA'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  3               key_string=&gt;'CLAVE_ERRONEA') from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DBMS_OBFUSCATION_TOOLKIT.&lt;wbr&gt;DESDECRYPT(INPUT_STRING=&gt;DBMS_&lt;wbr&gt;OBFUSCATION_TOOLKIT.DESEN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="font-family: courier new,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;???! k&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;...ó &lt;span style="font-weight: bold;"&gt;producirá un error&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;SQL&gt;  select DBMS_OBFUSCATION_TOOLKIT.DESDecrypt(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  2               input_string=&gt;DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(input_string=&gt;'1111222233334444',key_string=&gt;'CLAVE_BUENA'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  3             key_string=&gt;'CLAVE_MALA') from dual; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ERROR:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ORA-29275: partial multibyte character&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;no rows selected&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Uso de DBMS_CRYPTO&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;El siguiente ejemplo muestra la encriptación de la palabra "SECRETITOS!" (11 bytes) usando una suite de encriptación que ya viene implementada. En concreto es la &lt;span style="font-family: tahoma,sans-serif;font-size:85%;" &gt;DES_CBC_PCKS5&lt;/span&gt;, que contiene encriptación DES, encadenamiento de cifrado de bloques y modificadores de relleno PCKS5.&lt;br /&gt;&lt;br /&gt;Es preciso, para invocar correctamente a este paquete, realizar una conversión a RAW de las cadenas a encriptar. He utilizado para ello &lt;span style="font-family: georgia;"&gt;el paquet&lt;/span&gt;e UTL_RAW y la función  &lt;span style="font-family: verdana;font-size:85%;" &gt;UTL_I18N.STRING_TO_RAW&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: georgia;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;SQL&gt; select DBMS_CRYPTO.ENCRYPT(src =&gt; UTL_I18N.STRING_TO_RAW ('SECRETITOS!',  'AL32UTF8'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  2                             typ =&gt; 4353,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  3                             key =&gt; UTL_I18N.STRING_TO_RAW ('clavedesencript',  'AL32UTF8')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  4                             )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  5  from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;DBMS_CRYPTO.ENCRYPT(SRC=&gt;UTL_&lt;wbr&gt;I18N.STRING_TO_RAW('&lt;wbr&gt;SECRETITOS!','AL32UTF8'),TYP=&gt;&lt;wbr&gt;4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;1BA7F933C2CAD0C7F4FDA685775BE0&lt;wbr&gt;E7&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Y la desencriptación de la información, con la función DECRYPT.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;SQL&gt; select UTL_RAW.cast_to_varchar2(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  2                DBMS_CRYPTO.DECRYPT(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  3               DBMS_CRYPTO.ENCRYPT(src =&gt; UTL_I18N.STRING_TO_RAW ('SECRETITOS!',  'AL32UTF8'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  4                             &lt;wbr&gt;     typ =&gt; 4353,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  5                             &lt;wbr&gt;     key =&gt; UTL_I18N.STRING_TO_RAW ('clavedesencript',  'AL32UTF8')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  6                             &lt;wbr&gt;    ),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  7             typ =&gt; 4353,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  8             key =&gt; UTL_I18N.STRING_TO_RAW ('clavedesdecript',  'AL32UTF8')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;  9               )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt; 10         )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt; 11  from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;UTL_RAW.CAST_TO_VARCHAR2(DBMS_&lt;wbr&gt;CRYPTO.DECRYPT(DBMS_CRYPTO.&lt;wbr&gt;ENCRYPT(SRC=&gt;UTL_I18N.S&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;SECRETITOS!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;             Para más información sobre las múltiples formas de encriptación y uso de claves, lo mejor es consultar la &lt;a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_crypto.htm#i1004145"&gt;documentación del paquete DBMS_CRYPTO&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-517088455221097782?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/517088455221097782/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=517088455221097782' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/517088455221097782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/517088455221097782'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2010/06/encriptacion-de-datos-desde-aplicacion.html' title='Encriptación de datos desde aplicación.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-2417004537828960676</id><published>2010-06-11T12:47:00.002+02:00</published><updated>2010-06-11T15:05:21.684+02:00</updated><title type='text'>Oracle10g Data Miner.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Una de las cosas más interesantes en la explotación de una base de datos es, finalmente, la minería de éstos.&lt;br /&gt;&lt;br /&gt;El concepto de "minería de datos" se basa en el análisis de los datos con fines predictivos, para encontrar patrones ocultos en éstos... ¿quien podría adivinar que a una determinada hora o un determinado día de la semana se consume un determinado producto? ¿o que un producto orientado a hombres (cuchillas de afeitar) pasa a ser usado por mujeres solteras de un rango de edad?&lt;br /&gt;&lt;br /&gt;Una predicción de este tipo podría sugerir la creación de una nueva linea de producto, ofertas, etc.&lt;br /&gt;&lt;br /&gt;Hace tiempo impartí una conferencia sobre cómo implementar un modelo de base de datos de reservas en vuelos, desde un diagrama entidad-relación concreto hasta la explotación de datos históricos en el futuro. La aplicación pasaba por varias etapas (diseño, implementación, uso/cargas de datos, paso a histórico y reporting), y aunque los datos eran cargas completamente aleatorias, sucedían ciertos patrones interesantes.&lt;br /&gt;&lt;br /&gt;Los casados tomaban vuelos a Roma, los solteros a Milán, "Air France" viajaba con los vuelos a medio llenar, y otras compañías apenas tenían uno o dos vuelos con pérdidas...&lt;br /&gt;&lt;br /&gt;De modo que se me ocurrió hacer una prueba de minería de datos, para buscar una predicción que no pudiera verse "a simple vista". Éste fue el resultado:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo de Uso - Oracle Data Miner - Parte 1/2 &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jj_gSQpA7Yk&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/jj_gSQpA7Yk&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo de Uso - Oracle Data Miner - Parte 2/2 &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8Km-UG2LDZw&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/8Km-UG2LDZw&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Al final, la predicción (absurda) sobre los datos aleatorios fue una relación de probabilidades en las cuales un determinado tipo de persona (hombre/mujer, de una edad, de una ciudad) reservaría billetes con precios superiores a la media.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-2417004537828960676?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/2417004537828960676/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=2417004537828960676' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/2417004537828960676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/2417004537828960676'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2010/06/oracle10g-data-miner.html' title='Oracle10g Data Miner.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-115773995614058274</id><published>2006-09-08T20:16:00.000+02:00</published><updated>2006-09-08T20:56:15.266+02:00</updated><title type='text'>Acceso a una bbdd MSAccess desde Oracle.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Es posible acceder a bases de datos no oracle de forma transparente con &lt;span style="font-weight: bold;"&gt;Oracle Transparent Gateways&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Esta funcionalidad permite configurar una entrada DNS de ODBC como si se tratara de un servicio Oracle cualquiera. De este modo, mediante un dblink, un usuario podría acceder a una tabla de una base de datos access (o SQLServer o MySQL, por ejemplo) desde una query o desde PL/SQL.&lt;br /&gt;&lt;br /&gt;La arquitectura de servicios heterogeneos se basa en la siguiente configuración:&lt;br /&gt;&lt;br /&gt;Se especifica una entrada de TNS en el fichero &lt;span style="font-style: italic;"&gt;tnsnames.ora &lt;/span&gt;que resuelva una conexión al host, puerto y nombre de servicio determinado, con el parámetro &lt;span style="font-weight: bold;"&gt;HS=OK&lt;/span&gt; (Oracle Heterogeneous Services).&lt;br /&gt;&lt;br /&gt;Por otro lado, el listener destino tiene definido para ese servicio la invocación a un programa llamado "hsodbc" que, mediante un fichero de parámetros llamado init&lt;span style="font-style: italic;"&gt;&lt;sid_hs&gt;&lt;/sid_hs&gt;&lt;/span&gt;.ora accede al DNS asociado a la base de datos MSAccess concreta.&lt;br /&gt;&lt;br /&gt;De este modo, y creando un dblink, cualquier usuario podría hacer una select que cruzara datos de su esquema Oracle y de una bbdd Access.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PASOS A SEGUIR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1.- Instalar en el diccionario los servicios heterogeneos.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;2.- Configurar el tnsnames.ora &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;3.- Configurar el listener.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;4.- Comprobar que el listener y el tnsnames.ora funcionan correctamente.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;5.- Configurar el ODBC para la bbdd access.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;6.- Crear el DBLINK hacia la bbdd access.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;7.- Crear el fichero init&lt;sid_hs&gt;&lt;/sid_hs&gt;&lt;/span&gt;&lt;servicio_hs style="font-style: italic;"&gt;.ora &lt;/servicio_hs&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;8.- Ejecutar una consulta mediante ese dblink.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;font&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.- Instalar en el diccionario los servicios heterogeneos&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;@?/rdbms/admin/caths.sql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA: &lt;/span&gt;puede que estas vistas estén instaladas ya en la bbdd.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.- Configurar el tnsnames.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; bbdd_access = &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp; (DESCRIPTION=&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS= (PROTOCOL=tcp) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (HOST=&lt;a style="font-family: courier new;" href="http://192.168.2.4/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;192.168.2.4&lt;/span&gt;&lt;/span&gt;&lt;font&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PORT=1521)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA = &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVICE_NAME=odbc_access)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (HS = OK)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.- Configurar el listener. (la entrada en negrita es la que hay que añadir)...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;LISTENER =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;(DESCRIPTION_LIST =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(DESCRIPTION =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS_LIST =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS_LIST =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;192.168.2.4&lt;/span&gt;&lt;/span&gt;&lt;font&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&lt;a href="http://192.168.2.4/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;/a&gt;)(PORT = 1521))&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;SID_LIST_LISTENER =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp; (SID_LIST =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_DESC =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_NAME = PLSExtProc)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ORACLE_HOME = D:\oracle\ora92)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PROGRAM = extproc)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_DESC =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(GLOBAL_DBNAME = orcl)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ORACLE_HOME = D:\oracle\ora92)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_NAME = orcl)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new,monospace;font-size:85%;"&amp;nbsp;&amp;nbsp;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_DESC =&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new,monospace;font-size:85%;"&amp;nbsp;&amp;nbsp;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ORACLE_HOME = D:\oracle\ora92)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new,monospace;font-size:85%;"&amp;nbsp;&amp;nbsp;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_NAME = odbc_access)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new,monospace;font-size:85%;"&amp;nbsp;&amp;nbsp;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PROGRAM = hsodbc)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new,monospace;font-size:85%;"&amp;nbsp;&amp;nbsp;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.- Comprobar que el listener y el tnsnames.ora funciona correctamente. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;C:\Documents and Settings\Administrador&gt;&lt;span style="font-weight: bold;"&gt;tnsping bbdd_access&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 08-SEP-2006 18:19:42&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;Copyright (c) 1997 Oracle Corporation.&amp;nbsp;&amp;nbsp;All rights reserved.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;Archivos de parßmetros utilizados:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;D:\oracle\ora92\network\admin&lt;wbr&gt;\sqlnet.ora &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;Adaptador TNSNAMES utilizado para resolver el alias &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;Attempting to contact (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp)&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;(HOST=192.168.2.4)&lt;/span&gt;&lt;/span&gt;&lt;font&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; (PORT=1521)) (CONNECT_DATA = (SERVICE_NAME=odbc_access)) (HS &lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;= OK))&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;Realizado correctamente (50 mseg) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.- Configurar el ODBC para la bbdd access.&lt;/span&gt;&lt;br /&gt;La base de datos access utilizada en el ejemplo tiene una única tabla con cuatro filas de ejemplo...&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;create table ejemplo&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp; (id counter,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;valor text)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;font&gt;Es preciso crear un ODBC para acceder a la bbdd access determinada. Desde Windows esta opción se configura en Panel de control, Herramientas administrativas, Administrador ODBC y la pestaña DNS de sistema.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;font&gt;desde ahí se crea el driver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;odbc_access vinculado a la base de datos que uso: "test_hs.mdb" con esta tabla de ejemplo.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;font&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;NOTA: esta bbdd access tiene password "tesths"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.- Crear el DBLINK hacia la bbdd access.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;SQL&gt; CREATE DATABASE LINK bbdd_access&lt;br /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CONNECT TO ADMIN IDENTIFIED BY TESTHS&lt;br /&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;USING 'bbdd_access';&lt;br /&gt;&lt;br /&gt;Enlace con la base de datos creado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7.- Crear el fichero init&lt;servicio_hs&gt;&lt;/servicio_hs&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;sid_hs&gt;&lt;/sid_hs&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;servicio_hs&gt;.ora en el directorio de ORACLE_HOME&amp;nbsp;&amp;nbsp; /hs/admin/&lt;/servicio_hs&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; -- FICHERO initODBC_ACCESS.ora&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;#&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; # HS init parameters&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;#&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;HS_FDS_CONNECT_INFO = odbc_access&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;HS_FDS_TRACE_LEVEL = 0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;HS_FDS_TRACE_FILE_NAME = odbc_access.trc&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;HS_AUTOREGISTER = TRUE&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;envvar&gt;&lt;/envvar&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8.- Lanzar la query via ese dblink&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;SQL&gt; column "valor" format a40&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;SQL&gt; set pages 1000 &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;SQL&gt; set lines 120&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt; SQL&gt; select * from &lt;span style="font-weight: bold;"&gt;ejemplo@bbdd_access;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id valor&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;---------- ------------------------------&lt;wbr&gt;----------&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 dato1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 dato2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 dato3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;font-size:85%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 dato4&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-115773995614058274?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/115773995614058274/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=115773995614058274' title='67 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/115773995614058274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/115773995614058274'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2006/09/acceso-una-bbdd-msaccess-desde-oracle.html' title='Acceso a una bbdd MSAccess desde Oracle.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>67</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-115667910890608863</id><published>2006-08-27T13:41:00.000+02:00</published><updated>2006-09-29T14:38:45.053+02:00</updated><title type='text'>Oracle Enterprise Manager. Ejemplo de uso.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Oracle Enterprise Manager (OEMGR) es una herramienta que permite monitorizar bases de datos Oracle mediante dos tipos de conexiones:&lt;br /&gt;- &lt;b&gt;Standalone&lt;/b&gt; (o modo autónomo)&lt;br /&gt;- &lt;b&gt;Mediante OMS&lt;/b&gt; (Oracle Management Server)&lt;br /&gt;&lt;br /&gt;El modo Standalone funciona como una aplicación estándar cliente/servidor, mientras que la conexión a un OMS utiliza un repositorio intermedio con información global sobre las bases de datos registradas.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(ver &lt;/span&gt;&lt;a style="font-style: italic;" href="http://video.google.es/videoplay?docid=-6895971819113731202"&gt;el video &lt;/a&gt;&lt;span style="font-style: italic;"&gt;en pantalla completa)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-6895971819113731202&amp;hl=es" quality="best" bgcolor="#ffffff" scale="noScale" salign="TL" flashvars="playerMode=embedded" align="middle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;00:15&lt;/b&gt; - Autentificación con el OMS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;00:30&lt;/b&gt; - Packs de aplicaciones disponibles en OEMGR&lt;br /&gt;&lt;br /&gt;&lt;b&gt;01:00&lt;/b&gt; - Conexión a una base de datos y cambios en la SGA (memória). Monitorización de sesiones.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;02:00&lt;/b&gt; - Monitorización y gestión de tablespaces. Añadir un datafile a un tablespace y visualización del SQL generado.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;03:30&lt;/b&gt; - Monitorización de varias bases de datos de forma global. Sobre estas bases de datos OEMGR permite implementar trabajos (jobs) y alertas que actuen ante cualquier cambio de interés a monitorizar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;03:55&lt;/b&gt; - Creación de una alerta sobre una bbdd.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;05:30&lt;/b&gt; - La alerta, creada correctamente, hace visualizar en el mapa una bandera verde que confirma que todo funciona correctamente.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-115667910890608863?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/115667910890608863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=115667910890608863' title='14 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/115667910890608863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/115667910890608863'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2006/08/oracle-enterprise-manager-ejemplo-de.html' title='Oracle Enterprise Manager. Ejemplo de uso.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-114762294776627530</id><published>2006-05-14T14:20:00.000+02:00</published><updated>2006-05-14T18:09:07.816+02:00</updated><title type='text'>Funciones Analíticas.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hay veces en las que encuentro consultas SQL a las que llamo "query ataque de pánico", porque puedo imaginarme el sufrimiento del que la programó. Con mucha frecuencia, este tipo de consultas aparecen en casos en las que una función analítica hubiera resuelto toda la complejidad del problema.&lt;br /&gt;&lt;br /&gt;Al detalle. Una consulta del tipo "&lt;i&gt;Datos de cliente con la fecha del primer contrato, fecha de la primera cancelación de contrato, fecha del último contrato contratado, fecha de...&lt;/i&gt;" suele consultarse con una subconsulta para cada "fecha de...".&lt;br /&gt;&lt;br /&gt;Éste ejemplo, o el típico "&lt;i&gt;Los tres contratos más recientes, las cinco últimas cancelaciones, etc.&lt;/i&gt;" siempre hacen que los programadores realicen una subconsulta por cada una de las condiciones... y otra y otra y al final el rendimiento se incrementa tanto de consultar varias veces la misma tabla.&lt;br /&gt;&lt;br /&gt;...evidentemente, la consulta SQL se ha hecho tan vasta que resulta muy complicado mantenerla.&lt;br /&gt;&lt;br /&gt;Para esta casuística, las funciones analíticas se aplican a un subconjunto de registros, por lo que Oracle, para gestionarlo correctamente, crea una ventana SQL intermedia para reagrupar una y otra vez los resultados de una consulta. Así, dado el anterior ejemplo, Oracle tomaría todos los contratos de ese cliente y los agruparía para cada columna de resultados: el primer contrato contratado, el primer cancelado, el último contrato de alta, etc. sin necesidad de consultar una y otra vez la tabla de contratos.&lt;br /&gt;&lt;br /&gt;Las funciones analíticas tienen la siguiente sintaxis (no es la sintaxis completa).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;      &lt;b&gt;&lt;i&gt;FUNCIÓN_ANALITICA&lt;/i&gt;(&lt;/b&gt;campo&lt;b&gt;)&lt;/b&gt; &lt;br /&gt;      &lt;b&gt;OVER (PARTITION BY &lt;/b&gt;campo_agr1, campo_agr2 &lt;br /&gt;      &lt;b&gt;ORDER BY&lt;/b&gt; campo_ord1 &lt;b&gt;NULLS LAST)&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Las funciones analíticas están descritas en la documentación de Oracle y entre éstas, por ejemplo, se hallan &lt;b&gt;MAX()&lt;/b&gt;, &lt;b&gt;MIN()&lt;/b&gt;, &lt;b&gt;RANK()&lt;/b&gt;, etc.&lt;br /&gt;&lt;br /&gt;Un ejemplo de su uso sería, por ejemplo, intentar corregir esta consulta:&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_FACTURA,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.FALINEA_AUX&amp;nbsp;-&amp;nbsp;b.minCount&amp;nbsp;+&amp;nbsp;1&amp;nbsp;ID_FALINEA,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_CLIENT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_COMPTEFACT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_ID,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_PRCATPRODUCTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DS_PRNUMSERVEI,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_FACONCEPTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DT_FAFACTURACIO,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.NUM_FAIMPORTCONCEPTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_LABEL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DT_MOVIMENT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.FG_TIPUSOPERACIO,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.asset_id,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_ATTR_VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;FROM&amp;nbsp;vw_ci_linia_factura_tmp&amp;nbsp;a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(select&amp;nbsp;t.id_factura,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.dt_fafacturacio,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;min(t.falinea_aux)&amp;nbsp;minCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from&amp;nbsp;vw_ci_linia_factura_tmp&amp;nbsp;t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;group&amp;nbsp;by&amp;nbsp;t.id_factura,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.dt_fafacturacio&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;WHERE&amp;nbsp;a.id_factura&amp;nbsp;=&amp;nbsp;b.id_factura&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;a.id_factura,&amp;nbsp;a.FALINEA_AUX&amp;nbsp;-&amp;nbsp;b.minCount&amp;nbsp;+&amp;nbsp;1&amp;nbsp;ASC;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;En este caso, la necesidad de obtener la primera línea de factura para cada linea de factura, parece que obliga a cargar dos veces la vista (y su conjunto de tablas) en memoria y hacer una JOIN entre ambas.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;No es necesario.&lt;/b&gt; Los costes de ejecución se reducen a la mitad.&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_FACTURA,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.FALINEA_AUX&amp;nbsp;-&amp;nbsp;min(falinea_aux)&amp;nbsp;over&amp;nbsp;&lt;br /&gt;(partition&amp;nbsp;by&amp;nbsp;id_factura,&amp;nbsp;dt_fafacturacio)&amp;nbsp;+1&amp;nbsp;ID_FALINEA,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_CLIENT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_COMPTEFACT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_ID,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_PRCATPRODUCTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DS_PRNUMSERVEI,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.ID_FACONCEPTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DT_FAFACTURACIO,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.NUM_FAIMPORTCONCEPTE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_LABEL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.DT_MOVIMENT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.FG_TIPUSOPERACIO,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.asset_id,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.PRODUCT_ATTR_VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;FROM&amp;nbsp;sta_vw_ci_linia_factura_tmp&amp;nbsp;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;1,2&amp;nbsp;ASC;&lt;br /&gt;&lt;span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-114762294776627530?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/114762294776627530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=114762294776627530' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114762294776627530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114762294776627530'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2006/05/funciones-analticas_14.html' title='Funciones Analíticas.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-114485929484605748</id><published>2006-04-12T18:06:00.000+02:00</published><updated>2006-04-12T18:32:58.233+02:00</updated><title type='text'>Hablemos de Constraints.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Las constraints son reglas que ofrecen una garantía de integridad en la información vinculada. Existen 5 tipos de constraints.&lt;br /&gt;&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;Primary key&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;Foreign key&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;Unique key&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;Not Null&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;Check&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Las constraints tienen, básicamente, tres propósitos:&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;1.- Forzar integridad.&lt;/b&gt; Una constraint con estado ENABLED evita que, sobre las tablas, puedan modificarse valores de forma que no se satisfaga la regla de la constraint.&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;2.- Validar la información.&lt;/b&gt; Una constraint con estado DISABLED VALIDATE realiza una validación sobre los datos, certificando que la información contenida en las tablas satisface la regla de la constraint.&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;3.- Asumir la validez de la información.&lt;/b&gt; Una constraint con estado RELY no verifica la información, ni fuerza la integridad para las modificaciones y asume que los datos introducidos satisfacen la regla de la constraint.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Las constraints, por tanto, pueden estar &lt;b&gt;ENABLED&lt;/b&gt; o &lt;b&gt;DISABLED&lt;/b&gt;.&lt;br /&gt;Las constraints habilitadas cumplen el propósito 1. Ningún dato introducido o modificado viola la integridad de la regla de la constraint. De este modo, sobre una primary key ENABLED no se permite un insert sobre una fila ya existente. No obstante, &lt;b&gt;si la constraint está en el estado ENABLED NOVALIDATE, no se permitirán cambios que violen la regla&lt;/b&gt;, pero no se verificarán que los datos existentes la cumplan.&lt;br /&gt;&lt;br /&gt;Las constraints, por tanto, pueden estar en estado &lt;b&gt;VALIDATE&lt;/b&gt; o &lt;b&gt;NOVALIDATE&lt;/b&gt; independientemente de si están &lt;b&gt;ENABLED&lt;/b&gt; o &lt;b&gt;DISABLED&lt;/b&gt;.&lt;br /&gt;Las constraints con VALIDATE cumplen el propósito 2: La información existente está validada. No obstante, si la constraint está deshabilitada con DISABLED VALIDATE, no se permitirán cambios sobre las columnas afectadas, ya que aunque la constraint no está habilitada, certifica que los datos existentes son válidos y cumplen con la regla de la constraint.&lt;br /&gt;&lt;br /&gt;Las constraints, por tanto, pueden estar en estado &lt;b&gt;RELY&lt;/b&gt; o &lt;b&gt;NORELY&lt;/b&gt; (también conocido como BELIEF) cuando las constraints están en estado &lt;b&gt;DISABLED NOVALIDATE&lt;/b&gt;. &lt;br /&gt;Las constraints en ese estado cumplen con el propósito 3: Asumen que la información es correcta y aportan al optimizador información válida para el uso de vistas materializadas, optimización de queries, etc. De este modo, por ejemplo, al optimizador le puede resultar mucho más fácil encontrar tablas FACT o DIMENSION por las constraints de foreign key entre las tablas. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;b&gt;Las constraints DISABLED NOVALIDATE RELY ni validan la información de la tabla, ni comprueban que las modificaciones cumplen las reglas de las restricciones.&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Ejemplo 1:&lt;/b&gt; Una restricción de clave primaria habilitada con la opción de NOVALIDATE. No verifica la integridad referencial de las filas, pero no permite que las nuevas filas puedan violar la restricción.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt;&amp;nbsp;create&amp;nbsp;table&amp;nbsp;valores(&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;id&amp;nbsp;number,&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;valor&amp;nbsp;varchar2(50),&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;descrip&amp;nbsp;varchar2(300),&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;CONSTRAINT&amp;nbsp;PK_VALORES&amp;nbsp;PRIMARY&amp;nbsp;KEY&amp;nbsp;(id)&amp;nbsp;deferrable&amp;nbsp;initially&amp;nbsp;immediate);&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;valores&amp;nbsp;disable&amp;nbsp;primary&amp;nbsp;key;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;modificada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO','Primer&amp;nbsp;elemento,&amp;nbsp;tabla&amp;nbsp;vacía');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO''','Primer&amp;nbsp;elemento,&amp;nbsp;repetido');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO''''','Primer&amp;nbsp;elemento,&amp;nbsp;otra&amp;nbsp;vez&amp;nbsp;repetido');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;valores&amp;nbsp;enable&amp;nbsp;novalidate&amp;nbsp;primary&amp;nbsp;key;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;modificada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO''''''','Primer&amp;nbsp;elemento,&amp;nbsp;violando&amp;nbsp;PK,&amp;nbsp;repetido');&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO''''''','Primer&amp;nbsp;elemento,&amp;nbsp;violando&amp;nbsp;PK,&amp;nbsp;repetido')&lt;br /&gt;*&lt;br /&gt;ERROR&amp;nbsp;en&amp;nbsp;lÝnea&amp;nbsp;1:&lt;br /&gt;ORA-00001:&amp;nbsp;restricci¾n&amp;nbsp;·nica&amp;nbsp;(DW_VIAJES.PK_VALORES)&amp;nbsp;violada&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;valores;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;VALOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DESCRIP&lt;br /&gt;----------&amp;nbsp;----------------------------------------&amp;nbsp;----------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;ELEMENTO&amp;nbsp;UNO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Primer&amp;nbsp;elemento,&amp;nbsp;tabla&amp;nbsp;vacía&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;ELEMENTO&amp;nbsp;UNO'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Primer&amp;nbsp;elemento,&amp;nbsp;repetido&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;ELEMENTO&amp;nbsp;UNO''&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Primer&amp;nbsp;elemento,&amp;nbsp;otra&amp;nbsp;vez&amp;nbsp;repetido&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Ejemplo 2:&lt;/b&gt; Una restricción de clave primaria deshabilitada con la opción de VALIDATE. Verifica la integridad referencial de las filas, pero como está deshabilitada, no permite DML sobre la columna.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt;&amp;nbsp;truncate&amp;nbsp;table&amp;nbsp;valores;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;truncada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;valores&amp;nbsp;disable&amp;nbsp;primary&amp;nbsp;key;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;modificada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(1,'ELEMENTO&amp;nbsp;UNO','Primer&amp;nbsp;elemento,&amp;nbsp;tabla&amp;nbsp;vacía');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(2,'ELEMENTO&amp;nbsp;DOS','Segundo&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(3,'ELEMENTO&amp;nbsp;TRES','Tercer&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.');&lt;br /&gt;&lt;br /&gt;1&amp;nbsp;fila&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;valores&amp;nbsp;disable&amp;nbsp;validate&amp;nbsp;primary&amp;nbsp;key;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;modificada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(3,'ELEMENTO&amp;nbsp;TRES','Tercer&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.');&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(3,'ELEMENTO&amp;nbsp;TRES','Tercer&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.')&lt;br /&gt;*&lt;br /&gt;ERROR&amp;nbsp;en&amp;nbsp;lÝnea&amp;nbsp;1:&lt;br /&gt;ORA-25128:&amp;nbsp;No&amp;nbsp;se&amp;nbsp;puede&amp;nbsp;insertar/actualizar/suprimir&amp;nbsp;en&amp;nbsp;la&amp;nbsp;tabla&amp;nbsp;con&amp;nbsp;la&amp;nbsp;restricci¾n&amp;nbsp;(DW_VIAJES.PK_VALORES)&amp;nbsp;desactivada&amp;nbsp;y&amp;nbsp;validada&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(4,'ELEMENTO&amp;nbsp;CUATRO','Cuarto&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.');&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;valores&amp;nbsp;values&amp;nbsp;(4,'ELEMENTO&amp;nbsp;CUATRO','Cuarto&amp;nbsp;elemento,&amp;nbsp;ID&amp;nbsp;distinto.')&lt;br /&gt;*&lt;br /&gt;ERROR&amp;nbsp;en&amp;nbsp;lÝnea&amp;nbsp;1:&lt;br /&gt;ORA-25128:&amp;nbsp;No&amp;nbsp;se&amp;nbsp;puede&amp;nbsp;insertar/actualizar/suprimir&amp;nbsp;en&amp;nbsp;la&amp;nbsp;tabla&amp;nbsp;con&amp;nbsp;la&amp;nbsp;restricci¾n&amp;nbsp;(DW_VIAJES.PK_VALORES)&amp;nbsp;desactivada&amp;nbsp;y&amp;nbsp;validada&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Ejemplo 3:&lt;/b&gt; Una restricción de clave ajena deshabilitada. Permite la entrada de valores no existentes en la PK. La opción de enable constraint con la cláusula EXCEPTIONS INTO &lt;exceptions&gt; registra en la tabla exceptions los identificadores de las filas que no cumplen la condición de la constraint.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt;&amp;nbsp;create&amp;nbsp;table&amp;nbsp;master&amp;nbsp;(id&amp;nbsp;number&amp;nbsp;primary&amp;nbsp;key);&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;create&amp;nbsp;table&amp;nbsp;detail&amp;nbsp;(id&amp;nbsp;number&amp;nbsp;primary&amp;nbsp;key,&amp;nbsp;&amp;nbsp;valor&amp;nbsp;varchar2(50),&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;master_id&amp;nbsp;number&amp;nbsp;constraint&amp;nbsp;fk_master_id&amp;nbsp;references&amp;nbsp;master(id));&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;creada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;master&amp;nbsp;select&amp;nbsp;rownum&amp;nbsp;from&amp;nbsp;user_tables;&lt;br /&gt;&lt;br /&gt;40&amp;nbsp;filas&amp;nbsp;creadas.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;detail&amp;nbsp;disable&amp;nbsp;constraint&amp;nbsp;fk_master_id;&lt;br /&gt;&lt;br /&gt;Tabla&amp;nbsp;modificada.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;insert&amp;nbsp;into&amp;nbsp;detail&amp;nbsp;select&amp;nbsp;rownum,&amp;nbsp;object_name,&amp;nbsp;mod(rownum,45)+1&amp;nbsp;from&amp;nbsp;user_objects;&lt;br /&gt;&lt;br /&gt;68&amp;nbsp;filas&amp;nbsp;creadas.&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;alter&amp;nbsp;table&amp;nbsp;detail&amp;nbsp;enable&amp;nbsp;constraint&amp;nbsp;fk_master_id&amp;nbsp;exceptions&amp;nbsp;into&amp;nbsp;exceptions;&lt;br /&gt;alter&amp;nbsp;table&amp;nbsp;detail&amp;nbsp;enable&amp;nbsp;constraint&amp;nbsp;fk_master_id&amp;nbsp;exceptions&amp;nbsp;into&amp;nbsp;exceptions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&lt;br /&gt;ERROR&amp;nbsp;en&amp;nbsp;línea&amp;nbsp;1:&lt;br /&gt;ORA-02298:&amp;nbsp;no&amp;nbsp;se&amp;nbsp;puede&amp;nbsp;validar&amp;nbsp;(ORADBA.FK_MASTER_ID)&amp;nbsp;-&amp;nbsp;claves&amp;nbsp;principales&amp;nbsp;no&amp;nbsp;encontradas&lt;br /&gt;&lt;br /&gt;SQL&gt;&amp;nbsp;select&amp;nbsp;count(*)&amp;nbsp;from&amp;nbsp;exceptions;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;SQL&gt;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;exceptions;&lt;br /&gt;&lt;br /&gt;ROW_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OWNER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TABLE_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CONSTRAINT&lt;br /&gt;------------------&amp;nbsp;------------------------------&amp;nbsp;------------------------------&amp;nbsp;------------------&lt;br /&gt;AAAY/nAAJAAAd7KAAn&amp;nbsp;ORADBA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DETAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FK_MASTER_ID&lt;br /&gt;AAAY/nAAJAAAd7KAAo&amp;nbsp;ORADBA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DETAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FK_MASTER_ID&lt;br /&gt;AAAY/nAAJAAAd7KAAp&amp;nbsp;ORADBA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DETAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FK_MASTER_ID&lt;br /&gt;AAAY/nAAJAAAd7KAAq&amp;nbsp;ORADBA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DETAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FK_MASTER_ID&lt;br /&gt;AAAY/nAAJAAAd7KAAr&amp;nbsp;ORADBA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DETAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FK_MASTER_ID&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-114485929484605748?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/114485929484605748/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=114485929484605748' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114485929484605748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114485929484605748'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2006/04/hablemos-de-constraints.html' title='Hablemos de Constraints.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-114296055535427035</id><published>2006-03-21T17:49:00.000+01:00</published><updated>2006-03-21T18:05:48.993+01:00</updated><title type='text'>Uso de logminer.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;En alguna ocasión he necesitado recuperar una transacción validada con COMMIT, pero no deseada o errónea. Pongo un ejemplo:&lt;br /&gt;&lt;br /&gt; - Usuario borra una fila.&lt;br /&gt; - Por accidente.&lt;br /&gt; - No sabe de qué fila se trata, pero 'algo' ha dicho "registro borrado".&lt;br /&gt; - &lt;i&gt;(...borrado y validado)&lt;/i&gt;.&lt;br /&gt; - Ni idea de qué datos tenía la fila. &lt;br /&gt; - Ni él, ni nadie.&lt;br /&gt; - Desde ese momento, la fila X ha desaparecido sin rastro.&lt;br /&gt; &lt;br /&gt;Con variaciones, éste caso es bastante frecuente, y si el usuario que ha borrado el registro es lo suficientemente rápido, existe una posibilidad de recuperar los datos perdidos.&lt;br /&gt;&lt;br /&gt;Generalmente, todas las transacciones convencionales procesan la información pasando por las áreas de redo log. En estos archivos está toda la información correspondiente al nuevo cambio. Oracle basa toda su actividad en el buen funcionamiento del registro de redo log y, por tanto, en esta área únicamente almacena los datos físicos elementales para rehacer la operación. Por tanto, no se almacena información sobre los valores anteriores.&lt;br /&gt;&lt;br /&gt;Lo cual sí sucede en el área de rollback, y ¡la gestión de rollback también pasa por redolog!.&lt;br /&gt;&lt;br /&gt;Oracle dispone de un paquete, el LOG MINER que permite rastrear los redo logs (online y archivados) junto con la información de rollback disponible también en éstos. Una vez ejecutado el paquete que crea el fichero de diccionario de objetos, Oracle es capaz de interpretar esos redologs y mostrar información tan válida como el SQL generado y el SQL inverso para "reparar" la acción.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; connect / as sysdba&lt;br /&gt;Conectado.&lt;br /&gt;SQL&gt; show parameters utl&lt;br /&gt;&lt;br /&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;&lt;b&gt;utl_file_dir&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c:\oraclefiles&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;exec DBMS_LOGMNR_D.BUILD( DICTIONARY_FILENAME =&gt;'dictionary.ora', DICTIONARY_LOCATION =&gt; 'c:\oraclefiles');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; select member from v$logfile;&lt;br /&gt;&lt;br /&gt;MEMBER&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO04A.LOG&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO04B.LOG&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO05A.LOG&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO05B.LOG&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO06A.LOG&lt;br /&gt;C:\ORACLE\ORADATA\ORCL\REDO06B.LOG&lt;br /&gt;&lt;br /&gt;6 filas seleccionadas.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;exec DBMS_LOGMNR.add_logfile('C:\ORACLE\ORADATA\ORCL\REDO04A.LOG');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;exec DBMS_LOGMNR.add_logfile('C:\ORACLE\ORADATA\ORCL\REDO05A.LOG');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;exec DBMS_LOGMNR.add_logfile('C:\ORACLE\ORADATA\ORCL\REDO06A.LOG');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME =&gt;'c:\oraclefiles\dictionary.ora');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; set pages 100&lt;br /&gt;SQL&gt; set lines 120&lt;br /&gt;SQL&gt; column sql_redo format a50&lt;br /&gt;SQL&gt; column sql_undo format a50&lt;br /&gt;&lt;br /&gt;SQL&gt; select sql_redo, sql_undo from &lt;b&gt;v$logmnr_contents&lt;/b&gt; where rownum&lt;10;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:80%;"  &gt;&lt;br /&gt;SQL_REDO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL_UNDO&lt;br /&gt;-------------------------------------------------- --------------------------------------------------&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '170,01' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '170,01' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('170,01','1','170,01','1 170,01' and "Importe AVG" = '170,01' and "Ciudad"&lt;br /&gt;70,01','170,01','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52149');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52149' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAA';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '112,95' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '112,95' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('112,95','1','112,95','1 112,95' and "Importe AVG" = '112,95' and "Ciudad"&lt;br /&gt;12,95','112,95','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52206');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52206' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAB';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '123,29' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '123,29' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('123,29','1','123,29','1 123,29' and "Importe AVG" = '123,29' and "Ciudad"&lt;br /&gt;23,29','123,29','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52331');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52331' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAC';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '178,55' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '178,55' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('178,55','1','178,55','1 178,55' and "Importe AVG" = '178,55' and "Ciudad"&lt;br /&gt;78,55','178,55','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52419');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52419' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAD';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '107,36' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '107,36' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('107,36','1','107,36','1 107,36' and "Importe AVG" = '107,36' and "Ciudad"&lt;br /&gt;07,36','107,36','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52488');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52488' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAE';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '120,5' and "Importe COUNT" = '1' a&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" nd "Importe MAX" = '120,5' and "Importe MIN" = '12&lt;br /&gt;,"Detalle Vuelo") values ('120,5','1','120,5','120 0,5' and "Importe AVG" = '120,5' and "Ciudad" = 'M&lt;br /&gt;,5','120,5','Madeira','Portugal','Mayores de 50 a± adeira' and "Pais" = 'Portugal' and "Rango Edad" =&lt;br /&gt;os','Mujer','VUELO52561');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Mayores de 50 a±os' and "Sexo" = 'Mujer' and "De&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; talle Vuelo" = 'VUELO52561' and ROWID = 'AAALVmAAP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AAAAn8AAF';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '109,01' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '109,01' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('109,01','1','109,01','1 109,01' and "Importe AVG" = '109,01' and "Ciudad"&lt;br /&gt;09,01','109,01','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52690');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52690' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAG';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '174,91' and "Importe COUNT" = '1'&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" and "Importe MAX" = '174,91' and "Importe MIN" = '&lt;br /&gt;,"Detalle Vuelo") values ('174,91','1','174,91','1 174,91' and "Importe AVG" = '174,91' and "Ciudad"&lt;br /&gt;74,91','174,91','Madeira','Portugal','Mayores de 5 = 'Madeira' and "Pais" = 'Portugal' and "Rango Eda&lt;br /&gt;0 a±os','Mujer','VUELO52693');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d" = 'Mayores de 50 a±os' and "Sexo" = 'Mujer' and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Detalle Vuelo" = 'VUELO52693' and ROWID = 'AAALV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mAAPAAAAn8AAH';&lt;br /&gt;&lt;br /&gt;insert into "DISCOVERER9I"."EUL5_MV101651"("Import delete from "DISCOVERER9I"."EUL5_MV101651" where "&lt;br /&gt;e SUM","Importe COUNT","Importe MAX","Importe MIN" Importe SUM" = '131,5' and "Importe COUNT" = '1' a&lt;br /&gt;,"Importe AVG","Ciudad","Pais","Rango Edad","Sexo" nd "Importe MAX" = '131,5' and "Importe MIN" = '13&lt;br /&gt;,"Detalle Vuelo") values ('131,5','1','131,5','131 1,5' and "Importe AVG" = '131,5' and "Ciudad" = 'M&lt;br /&gt;,5','131,5','Madeira','Portugal','Mayores de 50 a± adeira' and "Pais" = 'Portugal' and "Rango Edad" =&lt;br /&gt;os','Mujer','VUELO52951');&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Mayores de 50 a±os' and "Sexo" = 'Mujer' and "De&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; talle Vuelo" = 'VUELO52951' and ROWID = 'AAALVmAAP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AAAAn8AAI';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9 filas seleccionadas.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-114296055535427035?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/114296055535427035/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=114296055535427035' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114296055535427035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/114296055535427035'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2006/03/uso-de-logminer.html' title='Uso de logminer.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-113155469529763955</id><published>2005-11-09T17:36:00.000+01:00</published><updated>2005-11-10T09:46:28.603+01:00</updated><title type='text'>Tremendas artimañas</title><content type='html'>&lt;div style="text-align: justify;"&gt;En uno de los proyectos en los que estoy trabajando, los desarrolladores utilizan clandestinamente la herramienta TOAD para operar con la base de datos. Por un problema de licencias, se les ha pedido a los desarrolladores que no utilicen esta aplicación, y utilicen otros programas que, para lo que necesitan, cumplen la funcionalidad necesaria.&lt;br /&gt;&lt;br /&gt;Parece que &lt;a href="http://www.toadsoft.com/"&gt;TOAD&lt;/a&gt;, de &lt;a href="http://www.quest.com/"&gt;Quest&lt;/a&gt;, es una herramienta demasiado atractiva para algunos. Incluso ofreciendo &lt;a href="http://oraclexperto.blogspot.com/2005/09/clientes-gratuitos-clientes-ligeros.html"&gt;alternativas gratuítas&lt;/a&gt; al respecto.&lt;br /&gt;&lt;br /&gt;Tras comprobar que seguían utilizando TOAD, incluso contra las bases de datos de producción, decidimos implementar el siguiente trigger after logon:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;create or replace trigger logon_program after logon on database&lt;br /&gt;declare r_session v$session%rowtype;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-- Tomamos info de la sesion que se conecta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select * into r_session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from v$session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where audsid=userenv('SESSIONID');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((upper(r_session.program) like '%T%O%A%D%')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or (upper(r_session.program) like '%TOAD%'))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise_application_error(-20002,'Hacking detected. Application not supported.');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No obstante, hay gente que se sigue resignando a usar sustitutivos a TOAD, y recurren a estratégias tan imaginativas como renombrar el ejecutable TOAD.EXE por SQLPLUSW.EXE&lt;br /&gt;&lt;br /&gt;Vamos, casi ni se nota!&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:75%;"  &gt;&lt;br /&gt;SQL&gt; select sid, serial#, program, module, osuser from v$session;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SERIAL# PROGRAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MODULE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OSUSER&lt;br /&gt;---------- ---------- ------------------------------ --------------------------------------------- --------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 ORACLE.EXE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1293 jrew.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jrew.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bbdd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;333 sqlplus.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sqlplus.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bbdd&lt;br /&gt;&lt;b&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;583 sqlplusw.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T.O.A.D.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slaborda&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2 JDBC Thin Client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OWB Runtime Service - Infrastructure&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SYSTEM&lt;br /&gt;&lt;b&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1091 sqlplusw.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T.O.A.D.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slaborda&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1006 OraEdit.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OraEdit.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bbdd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;385 QueryReporter.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PL/SQL Developer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bbdd&lt;br /&gt;&lt;b&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;819 sqlplusw.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T.O.A.D.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slaborda&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30 PLSQLDev.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PL/SQL Developer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bbdd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75 jrew.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jrew.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fdomingues&lt;br /&gt;&lt;b&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 21 FCBARCELONA5-REALMADRID0.exe&amp;nbsp;&amp;nbsp; T.O.A.D.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slaborda&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;196 JDBC Thin Client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JDBC Thin Client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fdomingues&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;61&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;413 JDBC Thin Client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JDBC Thin Client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fdomingues&lt;br /&gt;&lt;b&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;62&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50 FCBARCELONA5-REALMADRID0.exe&amp;nbsp;&amp;nbsp; T.O.A.D.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slaborda&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;22 filas seleccionadas.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Impresionante...&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-113155469529763955?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/113155469529763955/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=113155469529763955' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/113155469529763955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/113155469529763955'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/11/tremendas-artimaas.html' title='Tremendas artimañas'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112808381094092909</id><published>2005-09-30T14:20:00.000+02:00</published><updated>2005-09-30T14:38:50.900+02:00</updated><title type='text'>In vs. Exists</title><content type='html'>&lt;div style="text-align: justify;"&gt;He escrito anteriormente en este artículo sobre el uso de NOT IN y NOT EXISTS, mencionando que se trataba de cláusulas diferentes y que, por lo tanto, podían generar diferentes resultados. También mencioné que en su forma natural, IN y EXISTS suponen semánticamente operaciones distintas con diferentes vías de ejecución la mayoría de los casos, pero que pueden implementarse de forma que los resultados sean idénticos y permitir así el sustituir IN por EXISTS y viceversa.&lt;br /&gt;&lt;br /&gt;Antes de desglosar la ejecución de IN y EXISTS para una su optimización, menciono la forma de implementarse.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;IN&lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SELECT campo1, campo2, ..., campoN&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp; tabla1&lt;br /&gt;WHERE&amp;nbsp;&amp;nbsp;campoX IN (--subconsulta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT campo1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&amp;nbsp; tabla2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&amp;nbsp;condicion);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cierto.&lt;br /&gt;&lt;br /&gt;Esta consulta podría implementarse como una natural join. Se trata de un ejemplo. Oracle en ambos casos, tratándose de subconsultas simples, las interpreta como joins y resuelven el mismo plan de ejecución.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;SELECT t1.campo1, t1.campo2, ..., t1.campoN&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp; tabla1 t1, tabla2 t2&lt;br /&gt;WHERE&amp;nbsp;&amp;nbsp;t1.campoX = t2.campo1&lt;br /&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&amp;nbsp;condicion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Es decir, ambas consultas combinan los resultados de Tabla1 y Tabla2, unidos por las columnas t1.campoX y t2.campo1 de modo que visualicen únicamente los resultados de la tabla1 que cumplen la condición de combinación.&lt;br /&gt;&lt;br /&gt;La interpretación de la consulta, realizada con IN, es la siguiente:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Selecciona el campo1, campo2, ... hasta campoN&lt;br /&gt;de la tabla tabla1&lt;br /&gt;unicamente para las filas cuyo campoX se encuentre en la siguiente lista de valores campo1 de la tabla2, que cumplan con la condición condicion.&lt;br /&gt;&lt;/i&gt; &lt;br /&gt;La forma de resolver esta petición, para el servidor, es consultar la tabla2 en la subconsulta y delimitar después qué campos de la tabla1 cumplen la condición de join.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EXISTS&lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SELECT campo1, campo2, ..., campoN&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp; tabla1&lt;br /&gt;WHERE&amp;nbsp;&amp;nbsp;EXISTS&amp;nbsp;&amp;nbsp;(--subconsulta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&amp;nbsp; tabla2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&amp;nbsp;t1.campoX=t2.campo1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&amp;nbsp;condicion);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;No existe en esta forma una comparación de campos, salvo en la subconsulta. Ésta devuelve NULL (ni siquiera tendría que devolver un valor concreto para ser válida) y su interpretación semántica es la siguiente:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Selecciona el campo1, campo2, ... hasta campoN&lt;br /&gt;de la tabla tabla1&lt;br /&gt;unicamente cuando la subconsulta devuelva un registro (aunque éste sea NULL).&lt;br /&gt;La subconsulta, por tanto, devolverá un registro para aquellos elementos de la tabla2 cuyo campo1 sea igual que el campoX de la tabla principal.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Por lo que Oracle entiende que la consulta más idónea a resolverse antes es la principal, resolver los valores de campoX, y posteriormente compararlos con tabla2.&lt;br /&gt;&lt;br /&gt;Es decir, en la ejecución con EXISTS, Oracle entiende que la consulta principal debe resolverse primero, y la subconsulta después. Justo al contrario que IN, lo que puede producir diferentes planes de ejecución.&lt;br /&gt;&lt;br /&gt;Generalmente, IN resulta más ventajoso cuando la ejecución de la subconsulta tiene poco coste respecto a la principal, y EXISTS cuando sucede al revés.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(...continuará...)&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112808381094092909?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112808381094092909/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112808381094092909' title='21 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112808381094092909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112808381094092909'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/09/in-vs-exists.html' title='In vs. Exists'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112628503175134785</id><published>2005-09-09T18:43:00.000+02:00</published><updated>2005-09-09T18:57:11.760+02:00</updated><title type='text'>Clientes gratuitos. Clientes ligeros.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Uno de los principales problemas al desarrollar con PL/SQL sobre bases de datos es el uso de una buena herramienta de gestión del código. Los DBA's estamos bastante acostumbrados a trabajar con SQL*Plus, la aplicación consola en modo texto, donde tecleamos con más o menos acierto el código SQL que necesitamos para ejecutar comandos de gestión.&lt;br /&gt;&lt;br /&gt;No obstante, programar paquetes en PL/SQL donde puede haber miles de líneas de código, o ejecutar consultas sobre un número elevado de tablas, que pueden devolver un número también elevado de filas, implica necesitar un entorno un poco más cómodo para la programación de estos lenguajes contra la base de datos.&lt;br /&gt;&lt;br /&gt;Todos los desarrolladores que conozco tienen predilección por Toad, de Quest Software. Lo entiendo. Es una de las mejores herramientas para desarrolladores y DBA's que conozco. No obstante, es un cliente que lanza muchísimas consultas al diccionario por la gran cantidad de información que presenta y esto puede hacer que la aplicación funcione lenta al compilar, consultar dependencias de objetos y demás. Respecto al desarrollo, Toad no me parece la mejor aplicación para programar en PL/SQL.&lt;br /&gt;&lt;br /&gt;Para los desarrolladores suelo recomendar PL/SQL Developer de Allround Automations. Mucho más ergonómica en la debugación, mayor comodidad en la gestión del código y, aunque no posea las herramientas de control de sesiones, comparación de base de datos o traceado de sesiones, lo cierto es que para el trabajo cotidiano del programador, la aplicación resulta mucho más cómoda.&lt;br /&gt;&lt;br /&gt;No obstante, estas dos aplicaciones tienen un elevado coste de licencias que muchas empresas no pueden costearse. Mucho menos quien maneja Oracle para su aprendizaje, o programadores de otras áreas que puntualmente tienen que acceder a un servidor Oracle.&lt;br /&gt;&lt;br /&gt;Para usuarios con una red lenta, que necesiten un cliente ligero o para programadores que únicamente necesiten ejecutar SQL plano a una base de datos, o para quienes no pueden permitirse licencias de Toad o PL/SQL Developer, aquí paso una relación de herramientas FREEWARE orientadas a plataformas Oracle y muy ligeras de instalar y ejecutar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Query Reporter, de &lt;a href="http://www.allroundautomations.com/"&gt;Allround Automations&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se trata de una herramienta de SQL que genera los resultados en HTML. Muy cómoda, ligera y fácil de usar. El fabricante es el mismo que el de PL/SQL developer. Esta herramienta sería el "SQL Developer". Puede descargarse directamente &lt;a href="http://www.allroundautomations.com/queryreporter.exe"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DBDesigner4, de &lt;a href="http://www.fabforce.net/"&gt;Fabforce&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Herramienta CASE de modelaje de bases de datos. Cómoda y funcional, genera el código del modelo casi sin retoques. En &lt;a href="http://www.fabforce.net/dbdesigner4/downloads.php"&gt;esta página&lt;/a&gt; es posible descargar el programa para &lt;a href="http://www.fabforce.net/downloadfile.php?iddownloadfile=1"&gt;Windows&lt;/a&gt; y para &lt;a href="http://www.fabforce.net/downloadfile.php?iddownloadfile=2"&gt;Linux&lt;/a&gt;. Además, incluye manuales disponibles en &lt;a href="http://www.fabforce.net/downloadfile.php?iddownloadfile=4"&gt;HTML&lt;/a&gt; y &lt;a href="http://www.fabforce.net/downloadfile.php?iddownloadfile=5"&gt;PDF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SQL Tools for Oracle, de &lt;a href="http://www.sqltools.net/"&gt;SQLTools&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esta herramienta de &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=125592"&gt;código abierto&lt;/a&gt; me ha sorprendido por lo versátil que es. Tanto permite sin más problemas resolver un plan de ejecución de una query como extraer la sentencia DDL de creación de un objeto y navegar por todos los objetos y sus dependencias de un usuario concreto. Una herramienta muy bien resuelta, con tutoriales en &lt;a href="http://prdownloads.sourceforge.net/sqlt/sqltools_tutorial_en.pdf?download"&gt;PDF&lt;/a&gt;. Puede descargarse &lt;a href="http://prdownloads.sourceforge.net/sqlt/InstallSQLTools_141b66D.exe?download"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DB Comp, de &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.funduc.com/"&gt;Funduc&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sobre &lt;a href="http://www.funduc.com/dbcomp.htm"&gt;esta herramienta&lt;/a&gt; poco tengo que decir, ya que no la he probado, pero es gratuita y los comentarios que he leído mencionan que es bastante buena. Puede descargarse &lt;a href="http://www.funduc.com/ftp/dbcomp.zip"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Espero que estos enlaces puedan resultar de utilidad a más de uno.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112628503175134785?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112628503175134785/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112628503175134785' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112628503175134785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112628503175134785'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/09/clientes-gratuitos-clientes-ligeros.html' title='Clientes gratuitos. Clientes ligeros.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112418104163061021</id><published>2005-08-16T10:06:00.000+02:00</published><updated>2005-08-16T11:29:57.070+02:00</updated><title type='text'>Búsquedas fuzzy, índices context y gestión documental con Oracle. Parte II.</title><content type='html'>&lt;span style=";font-size:85%;"  &gt;&lt;i&gt;(Continua a partir de &lt;a href="http://oraclexperto.blogspot.com/2005/07/bsquedas-fuzzy-ndices-context-y-gestin.html"&gt;parte I&lt;/a&gt;).&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Recientemente he estado hablando con gente interesada en la gestión de contenidos de documentos y, en general, la mayoría utiliza formatos PDF. El anterior artículo se basaba únicamente en documentos word, y he creído interesante hacer un ejemplo de como Intermedia realiza la indexación de documentos word y PDF de forma totalmente transparente.&lt;br /&gt; &lt;br /&gt;Algo importante a mencionar sobre los índices context es que éstos no se mantienen automáticamente con las inserciones. Hay una causa mayor referente al impacto del rendimiento que tendría dicha reconstrucción. En este caso, se incluyen seis nuevas filas BFILE vinculadas a ficheros PDF existentes en el mismo directorio. Posteriormente a la inserción, es preciso reconstruir el índice para recrearlo con la nueva relación de términos.&lt;br /&gt;&lt;br /&gt;Para la implementación completa del ejemplo (creación de la tabla, el índice, el objeto directory y temas relativos a privilegios) es preciso seguir los pasos de la &lt;a href="http://oraclexperto.blogspot.com/2005/07/bsquedas-fuzzy-ndices-context-y-gestin.html"&gt;Parte I&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pasos:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;b&gt;Parte I.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.- Creación de una tabla con columna BFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.- Creación de un DIRECTORY oracle para vincular los documentos Word.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.- Concesión de privilegios sobre el DIRECTORY al usuario CTXSYS, propietario de Oracle Context.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.- Inserción de las filas en la tabla DOCUMENTOS.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.- Indexación de la columna BFILE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.- Ejemplos de consultas.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Parte II.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.- Inserción de las filas de documentos PDF.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.- Reconstrucción del índice context.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.- Ejemplos de consultas.&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; host dir c:\documentos&lt;br /&gt; El volumen de la unidad C no tiene etiqueta.&lt;br /&gt; El número de serie del volumen es: 2416-B169&lt;br /&gt;&lt;br /&gt; Directorio de c:\documentos&lt;br /&gt;&lt;br /&gt;09/05/2005&amp;nbsp;&amp;nbsp;09:31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;br /&gt;09/05/2005&amp;nbsp;&amp;nbsp;09:31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;..&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;271.360 EntornosNoProd_Permisos extendidos.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31.232 normas_dba.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;379.904 creacion_entorno_bbdd.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;252.928 CREACION_INSTANCIA_DE_ORACLE_EN_UNIX_v2_4.doc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:58&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.479.383 Oracle9i - New Features for Administrators - Vol I.pdf&lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:59&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.542.651 Oracle9i - New Features for Administrators - Vol II.pdf&lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.244.186 Oracle9i - New Features for Developers - Vol I.pdf&lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.342.972 Oracle9i - New Features for Developers - Vol II.pdf&lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.245.254 Oracle9i - New Features Overview - Vol I.pdf&lt;br /&gt;04/06/2002&amp;nbsp;&amp;nbsp;21:14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;801.119 Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;&lt;br /&gt;10 archivos&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.935.424 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 dirs&amp;nbsp;&amp;nbsp; 4.970.479.616 bytes libres&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; -- Inserción de los seis documentos &lt;b&gt;PDF&lt;/b&gt; sobre la tabla&lt;br /&gt;SQL&gt; -- y recreación del índice CONTEXT &lt;br /&gt;SQL&gt; -----------------------------------------------------------------------------------&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(5,'PDF','Oracle9i - New Features for Administrators - Vol I.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features for Administrators - Vol I.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(6,'PDF','Oracle9i - New Features for Administrators - Vol II.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features for Administrators - Vol II.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(7,'PDF','Oracle9i - New Features for Developers - Vol I.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features for Developers - Vol I.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(8,'PDF','Oracle9i - New Features for Developers - Vol II.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features for Developers - Vol II.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(9,'PDF','Oracle9i - New Features Overview - Vol I.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features Overview - Vol I.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos values&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;(10,'PDF','Oracle9i - New Features Overview - Vol II.pdf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','Oracle9i - New Features Overview - Vol II.pdf')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;commit;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Commit complete.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;ALTER INDEX &lt;/b&gt;idx_documentos_doc &lt;b&gt;REBUILD&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;Index altered.&lt;br /&gt;&lt;br /&gt;-- Las búsquedas CONTEXT sobre índices domain se realizan con la cláusula CONTAINS&lt;br /&gt;-- más documentación al respecto en&amp;nbsp;&amp;nbsp; &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/cqoper.htm"&gt;http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/cqoper.htm&lt;/a&gt; )&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con la palabra 'tablespace' cerca de 'storage'&lt;/i&gt;&lt;br /&gt;SQL&gt; select tipo, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'tablespace &lt;i&gt;near&lt;/i&gt; storage') &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TIPO TITULO&lt;br /&gt;---- ------------------------------------------------------------&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol I.pdf&lt;br /&gt;WORD Creación de instancia Oracle en UNIX.&lt;br /&gt;WORD Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con una palabra parecida a 'locally' en un 70%&lt;/i&gt;&lt;br /&gt;SQL&gt; select tipo, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'fuzzy(locally, 70, 6, weight)', 1) &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TIPO TITULO&lt;br /&gt;---- ------------------------------------------------------------&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol I.pdf&lt;br /&gt;WORD Creación de un entorno de BBDD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con una palabra parecida a 'locally' en un 60%&lt;/i&gt;&lt;br /&gt;&lt;i&gt;-- nota: la palabra LOCAL aparece en estos dos nuevos documentos &lt;/i&gt;&lt;br /&gt;SQL&gt; select tipo, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'fuzzy(locally, 60, 6, weight)', 1) &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TIPO TITULO&lt;br /&gt;---- ------------------------------------------------------------&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol I.pdf&lt;br /&gt;WORD Creación de instancia Oracle en UNIX.&lt;br /&gt;WORD Creación de un entorno de BBDD.&lt;br /&gt;WORD Entornos no producción. Permisos extendidos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos que hablen sobre 'listener'&lt;/i&gt;&lt;br /&gt;SQL&gt; select tipo, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'about(listener)') &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TIPO TITULO&lt;br /&gt;---- ------------------------------------------------------------&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;WORD Creación de instancia Oracle en UNIX.&lt;br /&gt;WORD Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- relevancia de documentos que hablan de 'listener'&lt;/i&gt;&lt;br /&gt;&lt;i&gt;-- nota: en 'Normativa de DBA', efectivamente, se habla bastante menos sobre el listener.&lt;/i&gt;&lt;br /&gt;SQL&gt; select tipo, &lt;b&gt;CONTAINS(documento, 'about(listener)')||'%' relevancia&lt;/b&gt;, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'about(listener)') &amp;gt 0&lt;/b&gt;; &lt;br /&gt;&lt;br /&gt;TIPO RELEVANCIA TITULO&lt;br /&gt;---- ---------- ------------------------------------------------------------&lt;br /&gt;PDF&amp;nbsp;&amp;nbsp;41%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Oracle9i - New Features Overview - Vol II.pdf&lt;br /&gt;WORD 91%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Creación de instancia Oracle en UNIX.&lt;br /&gt;WORD 23%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Más información en &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/csql.htm#21732"&gt;http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/csql.htm#21732&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112418104163061021?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112418104163061021/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112418104163061021' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112418104163061021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112418104163061021'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/08/bsquedas-fuzzy-ndices-context-y-gestin.html' title='Búsquedas fuzzy, índices context y gestión documental con Oracle. Parte II.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112325133695328487</id><published>2005-08-05T16:00:00.000+02:00</published><updated>2005-12-02T08:18:42.920+01:00</updated><title type='text'>Defragmentación de un tablespace mediante scripts.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;En muchas ocasiones recurro a generar scripts a partir de consultas.&lt;br /&gt;Ejecuto en SQL*Plus algo parecido a:&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; select 'alter package '||owner||'.'||object_name||' compile;'&amp;nbsp;sentencia&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&gt; from dba_objects where status='INVALID' and object_type ='PACKAGE BODY';&lt;br /&gt;&lt;br /&gt;SENTENCIA&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;alter package USUARIO.MAP02_CUACON02 compile;&lt;br /&gt;alter package USUARIO.MAP01_CUACON03 compile;&lt;br /&gt;alter package USUARIO.MAP01_FLUXHISTO03_CI compile;&lt;br /&gt;alter package USUARIO.MAP01_BALANCEBE03 compile;&lt;br /&gt;alter package USUARIO.MAP01_PAHISTOACT03 compile;&lt;br /&gt;alter package USUARIO.MAP01_RAPPELS03 compile;&lt;br /&gt;&lt;br /&gt;6 filas seleccionadas.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;y simplemente copio y pego las filas como comandos en la consola SQL.&lt;br /&gt;&lt;br /&gt;El procedimiento podrá parecer tosco, pero resulta muy versátil ejecutar una consulta que construya dinámicamente todas las sentencias SQL que se precisan para una determinada tarea y, lo más importante, que se adapten a cualquier entorno.&lt;br /&gt;&lt;br /&gt;Un ejemplo de ésto podría ser aplicado a la reorganización de los segmentos de un tablespace.&lt;br /&gt;&lt;br /&gt;Para la &lt;i&gt;defragmentación&lt;/i&gt; de un tablespace, los objetos deben reconstruirse de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;- Tablas:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;i&gt;ALTER TABLE xxxx MOVE STORAGE INITIAL tamaño K/M);&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;- Índices:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;i&gt;ALTER INDEX xxxx REBUILD [online];&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;- Tablas particionadas:&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;i&gt;ALTER TABLE xxxx MOVE PARTITION .......;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;- Índices particionados: &lt;/b&gt;&lt;i&gt;ALTER INDEX xxxx REBUILD PARTITION ...... [online];&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Teniendo en cuenta que mover una tabla en Oracle9i deja inválidos los índices, una vez ejecutados estos comandos por todas las tablas e índices del tablespace, sería preciso comprobar qué índices (o partitiones de índice) pueden haber quedado afectados y reconstruirlos.&lt;br /&gt;&lt;br /&gt;Habría otro detalle a tener presente: los segmentos reconstruidos sobre el mismo tablespace, dificilmente consiguen liberar el espacio contiguo al final de los ficheros, por lo que sería útil hacer un doble movimiento: mover primero a un tablespace vacío, y posteriormente mover los objetos al tablespace original de vuelta.&lt;br /&gt;&lt;br /&gt;Si bien esto no es complicado, sí resulta minucioso. Este script, en este caso, puede resultar tremendamente útil.&lt;br /&gt;&lt;br /&gt;Una vez defragmentado el tablespace, es preciso ejecutar el segundo script para reconstruir índices, lo que evitará que éstos se queden inválidos después del transporte.&lt;br /&gt;&lt;span style=";font-size:75%;"  &gt;&lt;br /&gt;&lt;b&gt;*&lt;/b&gt; &lt;i&gt;Nota: Es preciso tener en cuenta el tamaño total de los objetos. Si éstos son grandes, conviene aumentar el tamaño definido como inicial. Lo mejor es utilizar tablespaces gestionados localmente con gestión automática de las extensiones para que Oracle decida, en tablas grandes, hacer extensiones mayores dinámicamente. &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;b&gt;-- DEFRAGMENTA_TABLESPACE.SQL --&lt;/b&gt;&lt;br /&gt;set verify off&lt;br /&gt;set lines 120&lt;br /&gt;set pages 1000&lt;br /&gt;define tablespace_origen =&amp;TABLESPACE_DATOS&lt;br /&gt;define tablespace_destino=&amp;TABLESPACE_VACIO&amp;nbsp;&amp;nbsp;&lt;br /&gt;define t_extension_inicial=&amp;TAMAÑO_EXTENSION_INICIAL&lt;br /&gt;select 'alter table '||owner||'.'||table_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' move tablespace &amp;tablespace_destino storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_tables&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter table '||table_owner||'.'||table_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' move partition '||partition_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tablespace &amp;tablespace_destino storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_tab_partitions&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild tablespace &amp;tablespace_destino storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_indexes&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||index_owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild partition '||partition_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tablespace &amp;tablespace_destino storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_ind_partitions&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter table '||owner||'.'||table_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' move tablespace &amp;tablespace_origen storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_tables&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter table '||table_owner||'.'||table_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' move partition '||partition_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tablespace &amp;tablespace_origen storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_tab_partitions&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild tablespace &amp;tablespace_origen storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_indexes&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||index_owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild partition '||partition_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tablespace &amp;tablespace_origen storage (initial &amp;t_extension_inicial M);'&lt;br /&gt;from dba_ind_partitions&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;-- RECONSTRUYE_INDICES.SQL --&lt;/b&gt;&lt;br /&gt;select 'alter index '||index_owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild partition '||partition_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tablespace &amp;tablespace_origen storage (initial &amp;t_extension_inicial M);' SENTENCIA&lt;br /&gt;from dba_ind_partitions&lt;br /&gt;where upper(tablespace_name)='&amp;tablespace_origen'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||owner||'.'||index_name||' rebuild;'&lt;br /&gt;from dba_indexes&lt;br /&gt;where status='UNUSABLE'&lt;br /&gt;union all&lt;br /&gt;select 'alter index '||index_owner||'.'||index_name||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' rebuild partition '||partition_name||';'&lt;br /&gt;from dba_ind_partitions&lt;br /&gt;where status='UNUSABLE';&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;TEST&lt;/b&gt;&lt;br /&gt;&lt;b&gt;====&lt;/b&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; &lt;b&gt;@c:\reorganiza_tablespace&lt;/b&gt;&lt;br /&gt;Introduzca un valor para tablespace_datos: &lt;b&gt;DM_ACTIVIDAD01&lt;/b&gt;&lt;br /&gt;Introduzca un valor para tablespace_vacio: &lt;b&gt;TS_VACIO&lt;/b&gt;&lt;br /&gt;Introduzca un valor para tama±o_extension_inicial: &lt;b&gt;1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'MOVETABLESPACETS_VACIOSTORAGE(INITIAL1M);'&lt;br /&gt;--------------------------------------------------------------------------------------------------------------&lt;br /&gt;alter table USUARIO.TABLA_XXX02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXX02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXASMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXXX02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXXXX02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXPMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXP02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXAS02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXON02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXPMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXASMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOSMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOSMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOS02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTASMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTAS02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTASMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXXXXY02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACION02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACIONMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACIONMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVS02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVSMA02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVSMES02 move tablespace TS_VACIO storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXYY02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXY02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXASMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXX02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXX02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXPMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXP02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXAS02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXON02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXPMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXASMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOSMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOSMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXCIBOS02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTASMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTAS02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTASMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXX02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACION02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACIONMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXACIONMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVS02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVSMA02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;alter table USUARIO.TABLA_XXXTVSMES02 move tablespace DM_ACTIVIDAD01 storage (initial 1 M);&lt;br /&gt;&lt;br /&gt;52 filas seleccionadas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;Una vez ejecutados todos estos comandos, lanzamos el script que consulta los índices inválidos con el fin de recompilarlos.&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; &lt;b&gt;@c:\reconstruye_indices&lt;/b&gt;&lt;br /&gt;SENTENCIA&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;alter index USUARIO.INDICEXXXOSP02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXURAS02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXSION02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXOSPMES02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXRECIBOS02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXABTAS02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXDA02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXCIACION02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXTVS02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXTVSMA02_01 rebuild;&lt;br /&gt;alter index USUARIO.INDICEXXXTVSMES02_01 rebuild;&lt;br /&gt;&lt;br /&gt;11 filas seleccionadas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112325133695328487?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112325133695328487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112325133695328487' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112325133695328487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112325133695328487'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/08/defragmentacin-de-un-tablespace.html' title='Defragmentación de un tablespace mediante scripts.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112309807122324132</id><published>2005-08-03T20:42:00.000+02:00</published><updated>2005-08-03T21:41:11.233+02:00</updated><title type='text'>Generación de XML mediante query.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;En algunos proyectos en los que he participado, el equipo de front-end, que desarrollaba la interfaz web sobre plataforma .NET, tenía serios problemas para recuperar un conjunto de filas con un objeto tipo array incrustado.&lt;br /&gt;&lt;br /&gt;La consulta debía devolver un vector de registros, algunos de ellos formados por una lista de valores. En aquel entonces, el driver de .NET no podía gestionar objetos UDT (tipos de datos definidos por el usuario) y hubo que comprar un componente aparte que tampoco dio buen resultado,pues no soportaba consultas a &lt;b&gt;NESTED TABLES&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Una de las soluciones propuestas fue devolver el resultado (se trataba de fichas de clientes) en formato XML. La idea era buena, pero había alguno que pretendía "decodificar" columnas y filas para elaborar el resultado... ¡escribiendo un procedure con substrs! &lt;br /&gt;&lt;br /&gt;No hace falta. La funcionalidad de crear UDT tiene una importancia relevante en las conversiones a XML. Definiendo los tipos como &lt;b&gt;OBJECT&lt;/b&gt; y &lt;b&gt;TABLE OF OBJECT&lt;/b&gt; podemos crear una estructura de datos facilmente exportable a XML tal y como muestra el ejemplo.&lt;br /&gt;&lt;br /&gt;Las tablas tomadas como referencia corresponden a EMP y DEPT del esquema de ejemplo SCOTT.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create or replace type&lt;/b&gt; r_empleado&lt;b&gt; is object&lt;/b&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUM_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NUMBER(4),&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOMBRE_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(10),&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OFICIO_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(9),&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JEFE_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(4),&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCONTRATO_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DATE,&lt;br /&gt;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SALARIO_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NUMBER(7,2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMISION_EMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(7,2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEPARTAMENTO_EMP NUMBER(2));&lt;br /&gt; 10&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Tipo creado.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create or replace type &lt;/b&gt;t_empleado &lt;b&gt;is table of &lt;/b&gt;r_empleado;&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Tipo creado.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create or replace type &lt;/b&gt;r_dept&lt;b&gt; is object&lt;/b&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUM_DEPT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOMBRE_DEPT&amp;nbsp;&amp;nbsp;VARCHAR2(14),&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CIUDAD_DEPT&amp;nbsp;&amp;nbsp;VARCHAR2(13),&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;empleados&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t_empleado&lt;/b&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Tipo creado.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create or replace type&lt;/b&gt; t_dept&lt;b&gt; is table of &lt;/b&gt;r_dept;&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Tipo creado.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt; select &lt;b&gt;sys_xmlgen(&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;r_dept(&lt;/b&gt;dept.deptno, dept.dname, dept.loc,&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;cast(multiset(&lt;/b&gt;select emp.*&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from emp&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where emp.deptno = dept.deptno&lt;b&gt;) as t_empleado)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;),xmlformat.createFormat('DEPARTAMENTO')).getClobVal() &lt;/b&gt;as XML&lt;br /&gt;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;from dept&lt;br /&gt;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;where deptno=10;&lt;br /&gt;&lt;br /&gt;XML&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;i&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;/i&gt;&lt;br /&gt;&amp;lt;DEPARTAMENTO&amp;gt;&lt;br /&gt; &amp;lt;NUM_DEPT&amp;gt;&lt;b&gt;10&lt;/b&gt;&amp;lt;/NUM_DEPT&amp;gt;&lt;br /&gt; &amp;lt;NOMBRE_DEPT&amp;gt;&lt;b&gt;ACCOUNTING&lt;/b&gt;&amp;lt;/NOMBRE_DEPT&amp;gt;&lt;br /&gt; &amp;lt;CIUDAD_DEPT&amp;gt;&lt;b&gt;NEW YORK&lt;/b&gt;&amp;lt;/CIUDAD_DEPT&amp;gt;&lt;br /&gt; &amp;lt;EMPLEADOS&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;R_EMPLEADO&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NUM_EMP&amp;gt;&lt;b&gt;7782&lt;/b&gt;&amp;lt;/NUM_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NOMBRE_EMP&amp;gt;&lt;b&gt;CLARK&lt;/b&gt;&amp;lt;/NOMBRE_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;OFICIO_EMP&amp;gt;&lt;b&gt;MANAGER&lt;/b&gt;&amp;lt;/OFICIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;JEFE_EMP&amp;gt;&lt;b&gt;7839&lt;/b&gt;&amp;lt;/JEFE_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;FCONTRATO_EMP&amp;gt;&lt;b&gt;09/06/81&lt;/b&gt;&amp;lt;/FCONTRATO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;SALARIO_EMP&amp;gt;&lt;b&gt;2450&lt;/b&gt;&amp;lt;/SALARIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;DEPARTAMENTO_EMP&amp;gt;&lt;b&gt;10&lt;/b&gt;&amp;lt;/DEPARTAMENTO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/R_EMPLEADO&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;R_EMPLEADO&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NUM_EMP&amp;gt;&lt;b&gt;7839&lt;/b&gt;&amp;lt;/NUM_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NOMBRE_EMP&amp;gt;&lt;b&gt;KING&lt;/b&gt;&amp;lt;/NOMBRE_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;OFICIO_EMP&amp;gt;&lt;b&gt;PRESIDENT&lt;/b&gt;&amp;lt;/OFICIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;FCONTRATO_EMP&amp;gt;&lt;b&gt;17/11/81&lt;/b&gt;&amp;lt;/FCONTRATO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;SALARIO_EMP&amp;gt;&lt;b&gt;5000&lt;/b&gt;&amp;lt;/SALARIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;DEPARTAMENTO_EMP&amp;gt;&lt;b&gt;10&lt;/b&gt;&amp;lt;/DEPARTAMENTO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/R_EMPLEADO&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;R_EMPLEADO&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NUM_EMP&amp;gt;&lt;b&gt;7934&lt;/b&gt;&amp;lt;/NUM_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;NOMBRE_EMP&amp;gt;&lt;b&gt;MILLER&lt;/b&gt;&amp;lt;/NOMBRE_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;OFICIO_EMP&amp;gt;&lt;b&gt;CLERK&lt;/b&gt;&amp;lt;/OFICIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;JEFE_EMP&amp;gt;&lt;b&gt;7782&lt;/b&gt;&amp;lt;/JEFE_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;FCONTRATO_EMP&amp;gt;&lt;b&gt;23/01/82&lt;/b&gt;&amp;lt;/FCONTRATO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;SALARIO_EMP&amp;gt;&lt;b&gt;1300&lt;/b&gt;&amp;lt;/SALARIO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;DEPARTAMENTO_EMP&amp;gt;&lt;b&gt;10&lt;/b&gt;&amp;lt;/DEPARTAMENTO_EMP&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/R_EMPLEADO&amp;gt;&lt;br /&gt; &amp;lt;/EMPLEADOS&amp;gt;&lt;br /&gt;&amp;lt;/DEPARTAMENTO&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112309807122324132?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112309807122324132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112309807122324132' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112309807122324132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112309807122324132'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/08/generacin-de-xml-mediante-query.html' title='Generación de XML mediante query.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112265611868613573</id><published>2005-07-29T17:42:00.000+02:00</published><updated>2005-07-29T19:04:30.163+02:00</updated><title type='text'>Copiar una base de datos.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Últimamente he tenido la necesidad de copiar bases de datos.&lt;br /&gt;&lt;br /&gt;La petición textual era &lt;b&gt;la creación de una base de datos igual que otra, pero con otro nombre&lt;/b&gt;. En algunos casos se trataba de replicar el entorno de producción para usarlo como test. En otros, simplemente, testear que el backup permitía recuperar la base de datos sobre otra máquina y dejar esa base de datos operativa como entorno auxiliar.&lt;br /&gt;&lt;br /&gt;Cuando la base de datos puede conservar el mismo nombre y mismo SID, es tan fácil como copiar datafiles, redolog, controlfiles y archivos ORA sobre los mismos directorios originales en una máquina con un servidor Oracle instalado&lt;i&gt;*&lt;/i&gt;.&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:75%;"  &gt;&lt;i&gt;* Por supuesto, misma plataforma O.S., versión y release de Oracle.&lt;/i&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;No obstante, en los casos en los que el nombre debe ser diferente, hay que ser muy preciso con los pasos a seguir. Incluyo dos pasos previos como opcionales por si son de utilidad. &lt;br /&gt;&lt;br /&gt;En este ejemplo se asume que disponemos de la posibilidad de hacer un backup en frío de la base de datos.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pasos preliminares &lt;i&gt;(recomendado)&lt;/i&gt;: &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;- Backup frío, backup caliente, export, Transport Tablespaces, backup del backup, backup de todo lo posible.&lt;br /&gt;&amp;nbsp;&amp;nbsp;- Reducción de tamaño de los datafiles. (Tom Kyte tiene un fabuloso &lt;a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:18042204448192323045::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:153612348067"&gt;script &lt;/a&gt; para ello). Y otra vez backup. &lt;br /&gt;&lt;br /&gt;Pasos a seguir:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;1.- &lt;b&gt;Backup en frío de la BBDD original&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;2.- Generación del pfile para la nueva BBDD&lt;br /&gt;&amp;nbsp;&amp;nbsp;3.- Edición del pfile para sustituir: CONTROL_FILES, DB_NAME, y carpetas _DUMP_DEST,...&lt;br /&gt;&amp;nbsp;&amp;nbsp;4.- Definir el nuevo ORACLE_SID&lt;br /&gt;&amp;nbsp;&amp;nbsp;5.- Crear el nuevo servicio.&lt;br /&gt;&amp;nbsp;&amp;nbsp;6.- Creación del fichero de passwords &lt;i&gt;(sólo si el pfile tiene REMOTE_LOGIN_PASSWORDFILE=exclusive)&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;7.- Conexión a sqlplus como SYSDBA&lt;br /&gt;&amp;nbsp;&amp;nbsp;8.- Arranque de la instancia y creación del fichero de parámetros SPFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;9.- Backup del controlfile de la BBDD original a traza&lt;br /&gt;&amp;nbsp;&amp;nbsp;10.- Recreación del controlfile con la cláusula &lt;b&gt;SET NAME&lt;/b&gt;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;11.- Abrir la base de datos con modo &lt;b&gt;OPEN RESETLOGS&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.- Backup en frío de la BBDD original. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Restauración del backup sobre nueva ubicación.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;-- Ejecutar el resultado de la siguiente sentencia como script.&lt;br /&gt;-- NOTA: cuidado con los nombres duplicados de fichero.&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;select 'shutdown immediate;' from dual&lt;br /&gt;union all&lt;br /&gt;select 'host copy '||name||' &amp;&amp;directorio_destino' from v$controlfile&lt;br /&gt;union all&lt;br /&gt;select 'host copy '||member||' &amp;directorio_destino' from v$logfile&lt;br /&gt;union all&lt;br /&gt;select 'host copy '||name||' &amp;directorio_destino' from v$datafile&lt;br /&gt;union all&lt;br /&gt;select 'startup' from dual;&lt;br /&gt;&lt;br /&gt;-- copia de los ficheros a los directorios destino &lt;br /&gt;---------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.- Generación del pfile para la nueva base de datos&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; create pfile='?\admin\sid\pfile\inittest.ora' from spfile;&lt;br /&gt;&lt;br /&gt;Archivo creado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.- Edición del pfile para sustituir: CONTROL_FILES, DB_NAME, y carpetas _DUMP_DEST,...&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.- Definir el nuevo ORACLE_SID&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c:\&gt;set ORACLE_SID=test&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.- Crear el nuevo servicio.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c:\&gt;oradim -NEW -SRVC OracleServicetest&amp;nbsp;&amp;nbsp;-startmode auto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6.- Creación del fichero de passwords&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c:\&gt;orapwd file=C:\orant\ora92\database\PWDtest.ora password=xxxxxxxxx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.- Conexión a sqlplus como SYSDBA&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C:\&gt;sqlplus&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL*Plus: Release 9.2.0.6.0 - Production on Vie Jul 29 16:41:22 2005&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Copyright (c) 1982, 2002, Oracle Corporation.&amp;nbsp;&amp;nbsp;All rights reserved.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Introduzca el nombre de usuario: sys/xxxxxxxxxx as sysdba&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Conectado a una instancia inactiva.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.- Arranque de la instancia y creación del fichero de parámetros SPFILE&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; STARTUP NOMOUNT PFILE='C:\DIRECTORIO_DESTINO\inittest.ora'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Instancia ORACLE iniciada.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Total System Global Area 1074866044 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fixed Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 456572 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Variable Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 905969664 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Database Buffers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;167772160 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Redo Buffers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 667648 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; create spfile from pfile='C:\DIRECTORIO_DESTINO\inittest.ora';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Archivo creado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9.- Backup del controlfile de PROD a trace.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; alter database backup controlfile to trace;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos modificada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10.- A partir de la traza del fichero de control.&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Recreación del controlfile con el SET NAME al nuevo nombre.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATE CONTROLFILE &lt;b&gt;SET DATABASE "TEST" RESETLOGS&lt;/b&gt;&amp;nbsp;&amp;nbsp;NOARCHIVELOG REUSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAXLOGFILES 50&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAXLOGMEMBERS 5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAXDATAFILES 133&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAXINSTANCES 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAXLOGHISTORY 453&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LOGFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP 2 'C:\DATA\TEST\REDO\REDO02.LOG'&amp;nbsp;&amp;nbsp;SIZE 100M,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP 3 'C:\DATA\TEST\REDO\REDO03.LOG'&amp;nbsp;&amp;nbsp;SIZE 100M,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP 4 'C:\DATA\TEST\REDO\REDO04.LOG'&amp;nbsp;&amp;nbsp;SIZE 150M,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP 5 'C:\DATA\TEST\REDO\REDO05.LOG'&amp;nbsp;&amp;nbsp;SIZE 150M,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GROUP 6 'C:\DATA\TEST\REDO\REDO06.LOG'&amp;nbsp;&amp;nbsp;SIZE 200M&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-- STANDBY LOGFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DATAFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;(... ficheros...)&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'C:\DATA\TEST\SYSTEM\SYSTEM01.DBF',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'C:\DATA\TEST\DATA\DATA01.DBF'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CHARACTER SET WE8MSWIN1252&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Archivo de control creado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11.- Abrir la base de datos con modo OPEN RESETLOGS.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; alter database open resetlogs;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos modificada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12.- Verificación.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; select instance_name from v$instance;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTANCE_NAME&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;----------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; select name from v$database;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NAME&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;---------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEST&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; select status from v$thread;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OPEN&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12.- Shutdown y Open de la base de datos.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; shutdown immediate;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos cerrada.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos desmontada.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Instancia ORACLE cerrada.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL&gt; startup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Instancia ORACLE iniciada.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Total System Global Area 1074866044 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fixed Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 456572 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Variable Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 905969664 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Database Buffers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;167772160 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Redo Buffers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 667648 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos montada.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base de datos abierta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112265611868613573?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112265611868613573/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112265611868613573' title='21 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112265611868613573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112265611868613573'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/copiar-una-base-de-datos.html' title='Copiar una base de datos.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112224688415674811</id><published>2005-07-25T01:00:00.000+02:00</published><updated>2005-07-25T01:15:57.873+02:00</updated><title type='text'>NOT IN y NOT EXISTS no son lo mismo.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Aunque no lo parezca, &lt;b&gt;NOT IN&lt;/b&gt; y &lt;b&gt;NOT EXISTS&lt;/b&gt; no son cláusulas equivalentes. &lt;b&gt;IN&lt;/b&gt; y &lt;b&gt;EXISTS&lt;/b&gt; devuelven el mismo conjunto de resultados, pero su semántica es completamente distinta. Aun así, los programadores la utilizan indistintamente ya que se han acostumbrado a trabajar con una de las dos y realizan de igual modo la negación. &lt;br /&gt;&lt;br /&gt;Por un lado, &lt;b&gt;IN&lt;/b&gt; solicita aquellos registros cuyo valor exista dentro de un conjunto de valores. Por otro lado, la cláusula &lt;b&gt;EXISTS&lt;/b&gt; incluye el registro si la subconsulta siguente devuelve un valor, sea cual sea, incluído &lt;b&gt;NULL&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;De este modo, la sintaxis de &lt;b&gt;IN&lt;/b&gt; y &lt;b&gt;EXISTS&lt;/b&gt; podrían aprobar los mismos registros si la consulta está bien construída, aunque los planes de ejecución sean completamente distintos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOT IN&lt;/b&gt; y &lt;b&gt;NOT EXISTS&lt;/b&gt; no son sinónimos. El valor &lt;b&gt;NULL&lt;/b&gt; determina la diferencia.&lt;br /&gt;&lt;br /&gt;Dada la siguiente consulta con &lt;b&gt;NOT IN&lt;/b&gt;:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; select count(*) from clientes&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;where ciu_id_ciudad not in (select ciu_id_ciudad from agencias);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Y su equivalente con &lt;b&gt;NOT EXISTS&lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; select count(*) from clientes c&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;where not exists (select a.ciu_id_ciudad from agencias a where c.ciu_id_ciudad=a.ciu_id_ciudad);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Los resultados son idénticos: Efectivamente, no existe ningún cliente que viva en una ciudad donde no haya una agencia. En este caso, hay clientes y agencias en todas las ciudades de la base de datos.&lt;br /&gt;&lt;br /&gt;No obstante, si las tablas contienen elementos nulos, las dos operaciones devolverán conjuntos de resultados distintos. &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;NOT IN y NOT EXISTS no son la misma cláusula con sintaxis distinta. &lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; update clientes&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;set ciu_id_ciudad=null&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where round(rownum/1000)=0;&lt;br /&gt;&lt;br /&gt;499 filas actualizadas.&lt;br /&gt;&lt;br /&gt;SQL&gt; select count(*) from clientes&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;where ciu_id_ciudad not in (select ciu_id_ciudad &lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from agencias);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&lt;br /&gt;SQL&gt; select count(*) from clientes c&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;where not exists (select a.ciu_id_ciudad &lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp; from agencias a where c.ciu_id_ciudad=a.ciu_id_ciudad);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 499&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Así, &lt;b&gt;NOT IN&lt;/b&gt; se basa en la consulta de todos los valores respecto un valor concreto para determinar que no está incluido en la lista. Los valores nulos se computan como &lt;b&gt;FALSO&lt;/b&gt; y no incluyen el elemento en la selección.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOT EXISTS&lt;/b&gt; se basa en la consulta de un valor y su no existencia en un subconjunto de registros. Los valores nulos se computan como &lt;b&gt;VERDADERO&lt;/b&gt;, e incluyen el elemento en la selección.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112224688415674811?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112224688415674811/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112224688415674811' title='10 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112224688415674811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112224688415674811'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/not-in-y-not-exists-no-son-lo-mismo.html' title='NOT IN y NOT EXISTS no son lo mismo.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112190209483252751</id><published>2005-07-21T00:30:00.000+02:00</published><updated>2005-07-21T01:32:22.223+02:00</updated><title type='text'>PL/SQL y ejecuciones en host.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Por un motivo de seguridad, desde PL/SQL no es posible ejecutar llamadas al host. En principio, ningún módulo programado en PL/SQL debería ejecutar nada en sistema operativo. No obstante, seguro que cualquiera es capaz de recordar alguna situación concreta en la que poder invocar un "copy" o quizás ejecutar algún fichero .exe hubiera sido de gran ayuda.&lt;br /&gt;&lt;br /&gt;Existe una forma de dar un rodeo a este escenario.&lt;br /&gt;&lt;br /&gt;Oracle permite la llamada a procedimientos externos mediante un servicio extproc que debe configurarse en el fichero de alias de servicios "tnsnames.ora" para el cliente, y en el de configuración del listener "listener.ora" en el lado del servidor.&lt;br /&gt;&lt;br /&gt;Los ficheros tendrán este aspecto.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;"&gt;Nota: puede haber cambios por la versión del servidor. El ejemplo se implementó sobre Oracle 8.1.7.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Fichero LISTENER.ORA&lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;LISTENER =&lt;br /&gt;&amp;nbsp;&amp;nbsp;(DESCRIPTION_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;SID_LIST_LISTENER =&lt;br /&gt;&amp;nbsp;&amp;nbsp;(SID_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_DESC =&lt;b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SID_NAME = extproc_agent)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ORACLE_HOME = E:\oracle\ora92)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PROGRAM = extproc)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ENVS = "EXTPROC_DLLS=ANY")&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Fichero TNSNAMES.ORA&lt;/b&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;EXTPROC_CONNECTION_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;(DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ADDRESS = &lt;b&gt;(PROTOCOL = IPC)(Key = EXTPROC))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(CONNECT_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;b&gt;SID = extproc_agent&lt;/b&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Con esta parametrización del listener, y la definición de un servicio para llamadas a 'extproc', Oracle es capaz de invocar desde PL/SQL librerías externas programadas en C o PASCAL.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Pasos:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.- Descarga de un compilador de C++. Este ejemplo utiliza &lt;a href="http://www.borland.com/downloads/download_cbuilder.html"&gt;C++Compiler&lt;/a&gt; de Borland.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.- Creación de un programa en C que ejecuta en S.O. un comando dado.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.- Compilación del programa e implementación de las librerías.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.- Desde Oracle, creación del objeto LIBRARY &lt;i&gt;(biblioteca)&lt;/i&gt;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.- Creación de un procedimiento PL/SQL que invoque a una función de esa biblioteca.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;Creación del programa shell.c&lt;br /&gt;-----------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp; #include &amp;lt;windows.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; #include &amp;lt;stdio.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; #include &amp;lt;stdlib.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; void __declspec(dllexport) sh(char *);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; void sh(char *cmd)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;system(cmd);&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Compilación del código C y creación de las librerías&amp;nbsp;&amp;nbsp;.lib y .dll&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;bcc32 -WD shell.c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;implib shell.lib shell.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creación del objeto LIBRARY, en la consola de SQL.&lt;br /&gt;--------------------------------------------------&lt;br /&gt;SQL&gt; &lt;b&gt;create library &lt;/b&gt;shell_lib &lt;b&gt;is 'C:\Borland\BCC55\shell.dll'&lt;/b&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Biblioteca creada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De modo que ya es posible crear un procedimiento PL/SQL que referencie externamente a esa librería. Ésta se encargará de ejecutar en host el parámetro que le incluyamos. Por ejemplo, un "copy".&lt;br /&gt;--------------------------------------------------------------------------------------------------&lt;br /&gt;SQL&gt; create or replace procedure shell (&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd IN varchar2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;b&gt;as external&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; library shell_lib&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name "_sh"&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; language C&lt;br /&gt;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameters (cmd string);&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;/&lt;br /&gt;&lt;br /&gt;Procedimiento creado.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El testeo podrá hacerse con un simple 'exec' desde SQL*Plus, ya que equivale a "BEGIN shell('parametro'); END;"&lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;br /&gt;SQL&gt; exec shell('copy c:\test\*.* c:\destino\');&lt;br /&gt;&lt;br /&gt;Procedimiento PL/SQL terminado correctamente.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Funciona.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112190209483252751?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112190209483252751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112190209483252751' title='15 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112190209483252751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112190209483252751'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/plsql-y-ejecuciones-en-host.html' title='PL/SQL y ejecuciones en host.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112172976562456026</id><published>2005-07-19T01:27:00.000+02:00</published><updated>2005-08-16T11:26:22.703+02:00</updated><title type='text'>Búsquedas fuzzy, índices context y gestión documental con Oracle. Parte I.</title><content type='html'>&lt;span style=";font-size:85%;"  &gt;&lt;i&gt;(Continua en &lt;a href="http://oraclexperto.blogspot.com/2005/08/bsquedas-fuzzy-ndices-context-y-gestin.html"&gt;parte II&lt;/a&gt;).&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;En muchas ocasiones he podido ver como el uso de las funcionalidades de gestión documental de Oracle era un misterio para los directores de proyecto, que solían confiar para estas tareas en otras herramientas documentales, analistas y programadores.&lt;br /&gt;&lt;br /&gt;Éstos últimos, tenían serios problemas en realizar búsquedas por contenido sobre campos almacenados como CLOB, ya que en la mayoría de casos utilizaban la cláusula LIKE con comodines a ambos lados, lo cual impedía el uso por parte del servidor de cualquier índice asociado a esa columna.  Otras veces la solución implementada era aun peor (lowers, uppers, substr, instr... ¡sobre un campo que puede llegar a tener hasta 4Gb de capacidad!). Terrible.&lt;br /&gt;&lt;br /&gt;Oracle dispone de una potencia de gestión documental principalmente basada en el uso de índices domain. Se trata de &amp;iacute;ndices por palabras (también conocidos como &amp;iacute;ndices CONTEXT) que permiten a Oracle, en una columna de CLOBs o BFILEs, tener una relación del contenido de estos objetos.&lt;br /&gt;&lt;br /&gt;El siguiente ejemplo es un pequeño ejercicio basado en el uso de las funcionalidades documentales del servidor Oracle9i.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pasos:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.- Creación de una tabla con columna BFILE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.- Creación de un DIRECTORY oracle para vincular los documentos Word.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.- Concesión de privilegios sobre el DIRECTORY al usuario CTXSYS, propietario de Oracle Context.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.- Inserción de las filas en la tabla DOCUMENTOS.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.- Indexación de la columna BFILE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.- Ejemplos de consultas.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;SQL&gt; -- Inicialmente creo una tabla DOCUMENTOS donde vincularé los documentos en formato word&lt;br /&gt;SQL&gt; -- para su posterior indexación&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create table documentos(&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id number constraint pk_documentos primary key,&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tipo char(4),&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;titulo varchar2(60) not null,&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;documento bfile&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;Tabla creada.&lt;br /&gt;&lt;br /&gt;SQL&gt; -- Es preciso crear un objeto DIRECTORY, vinculado al directorio de sistema operativo&lt;br /&gt;SQL&gt; -- donde se encuentran los documentos word.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;create or replace directory documentos_word as 'c:\documentos';&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Directorio creado.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;grant read on directory documentos_word to CTXSYS;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Concesión terminada correctamente.&lt;br /&gt;&lt;br /&gt;SQL&gt; host dir c:\documentos&lt;br /&gt; El volumen de la unidad C no tiene etiqueta.&lt;br /&gt; El número de serie del volumen es: 2416-B169&lt;br /&gt;&lt;br /&gt; Directorio de c:\documentos&lt;br /&gt;&lt;br /&gt;09/05/2005&amp;nbsp;&amp;nbsp;09:31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;br /&gt;09/05/2005&amp;nbsp;&amp;nbsp;09:31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;..&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;271.360 EntornosNoProd_Permisos extendidos.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31.232 normas_dba.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;379.904 creacion_entorno_bbdd.doc&lt;br /&gt;25/04/2005&amp;nbsp;&amp;nbsp;13:21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;252.928 CREACION_INSTANCIA_DE_ORACLE_EN_UNIX_v2_4.doc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 archivos&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;935.424 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 dirs&amp;nbsp;&amp;nbsp; 4.859.199.488 bytes libres&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; -- Inserción de los cuatro documentos sobre la tabla&lt;br /&gt;SQL&gt; -- y creación del índice CONTEXT (la cláusula es &lt;b&gt;INDEXTYPE IS ctxsys.context&lt;/b&gt;)&lt;br /&gt;SQL&gt; -----------------------------------------------------------------------------------&lt;br /&gt;SQL&gt; insert into documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;values (1,'WORD','Entornos no producción. Permisos extendidos.',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','EntornosNoProd_Permisos extendidos.doc')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 fila creada.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;values (2,'WORD','Normativa de DBA.',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','normas_dba.doc')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 fila creada.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;values (3,'WORD','Creación de un entorno de BBDD.',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','creacion_entorno_bbdd.doc')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 fila creada.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;values (4,'WORD','Creación de instancia Oracle en UNIX.',&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;BFILENAME('DOCUMENTOS_WORD','CREACION_INSTANCIA_DE_ORACLE_EN_UNIX_v2_4.doc')&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;1 fila creada.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;b&gt;CREATE INDEX &lt;/b&gt;idx_documentos_doc &lt;b&gt;ON&lt;/b&gt; documentos(DOCUMENTO) &lt;b&gt;INDEXTYPE IS ctxsys.context&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;Índice creado.&lt;br /&gt;&lt;br /&gt;-- Las búsquedas CONTEXT sobre índices domain se realizan con la cláusula CONTAINS&lt;br /&gt;-- más documentación al respecto en&amp;nbsp;&amp;nbsp; &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/cqoper.htm"&gt;http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/cqoper.htm&lt;/a&gt; )&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con la palabra 'tablespace' cerca de 'storage'&lt;/i&gt;&lt;br /&gt;SQL&gt; select titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'tablespace &lt;i&gt;near&lt;/i&gt; storage') &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TITULO&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;Creación de instancia Oracle en UNIX.&lt;br /&gt;Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con una palabra parecida a 'locally' en un 70%&lt;/i&gt;&lt;br /&gt;SQL&gt; select titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'fuzzy(locally, 70, 6, weight)', 1) &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TITULO&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;Creación de un entorno de BBDD.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos con una palabra parecida a 'locally' en un 60%&lt;/i&gt;&lt;br /&gt;&lt;i&gt;-- nota: la palabra LOCAL aparece en estos dos nuevos documentos &lt;/i&gt;&lt;br /&gt;SQL&gt; select titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'fuzzy(locally, 60, 6, weight)', 1) &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TITULO&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;Creación de instancia Oracle en UNIX.&lt;br /&gt;Creación de un entorno de BBDD.&lt;br /&gt;Entornos no producción. Permisos extendidos.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- documentos que hablen sobre 'listener'&lt;/i&gt;&lt;br /&gt;SQL&gt; select titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'about(listener)') &amp;gt 0&lt;/b&gt;;&lt;br /&gt;&lt;br /&gt;TITULO&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;Creación de instancia Oracle en UNIX.&lt;br /&gt;Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;-- relevancia de documentos que hablan de 'listener'&lt;/i&gt;&lt;br /&gt;&lt;i&gt;-- nota: en 'Normativa de DBA', efectivamente, se habla bastante menos sobre el listener.&lt;/i&gt;&lt;br /&gt;SQL&gt; select &lt;b&gt;CONTAINS(documento, 'about(listener)')||'%' relevancia&lt;/b&gt;, titulo&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;from documentos&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;where &lt;b&gt;CONTAINS(documento, 'about(listener)') &amp;gt 0&lt;/b&gt;; &lt;br /&gt;&lt;br /&gt;RELEVANCIA TITULO&lt;br /&gt;---------- ------------------------------------------------------------&lt;br /&gt;78%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Creación de instancia Oracle en UNIX.&lt;br /&gt;20%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Normativa de DBA.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Más información en &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/csql.htm#21732"&gt;http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/csql.htm#21732&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112172976562456026?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112172976562456026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112172976562456026' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112172976562456026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112172976562456026'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/bsquedas-fuzzy-ndices-context-y-gestin.html' title='Búsquedas fuzzy, índices context y gestión documental con Oracle. Parte I.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112156557548855732</id><published>2005-07-17T03:06:00.000+02:00</published><updated>2005-07-17T04:48:10.586+02:00</updated><title type='text'>Uso de cursores y bulk insert.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Uno de los muchos mitos en oracle es que el uso de cursores perjudica seriamente el rendimiento. Incluso he visto algunos proyectos en los que se había prohibido el uso de esta técnica.&lt;br /&gt;&lt;br /&gt;El impacto sobre el rendimiento es cierto en parte, ya que el servidor trata individualmente cada registro y, por tanto, esto debería implementarse únicamente cuando fuera estrictamente necesario (sql dinámico, iteraciones dentro del fetch, etc.) utilizando, siempre que sea posible, SQL estándar.&lt;br /&gt;&lt;br /&gt;No obstante, hay situaciones en las que no es posible el uso de SQL convencional. Por ejemplo, cuando en una inserción es preciso controlar los errores e insertarlos en otra tabla. Ante este caso, los procedimientos ETL filtran previamente las filas, las mueven a otra tabla, y cuando las filas ya están totalmente "limpias" de errores, entonces realizan&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;INSERT INTO tabla SELECT * ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oracle, a partir de la versión 9i, dispone de la funcionalidad de BULK sql, es decir, tratamiento de conjuntos de filas "a montón". Realizar bulk inserts puede resultar muy práctico en el caso anterior, ya que las filas en el cursor no se ejecutan individualmente y no es preciso el filtrado previo de las filas.&lt;br /&gt;&lt;br /&gt;Así pues, ante la necesidad de insertar en una tabla un volúmen de filas, omitir los errores e insertar las filas erróneas en una tabla, el siguiente código PL/SQL puede ser de gran utilidad, ya que su coste de ejecución resulta idéntico al del INSERT.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;-- Código PL/SQL para insertar en una tabla, manejando errores en filas, con BULK INSERT&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type clientes_array is table of BK_CLIENTE_BDM_03%rowtype index by binary_integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;registros&amp;nbsp; clientes_array;&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;errores NUMBER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dml_errores EXCEPTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contador_errores number := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRAGMA exception_init(dml_errores, -24381);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cursor c is select * from BK_CLIENTE_BDM_03;&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; open c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fetch c BULK COLLECT INTO registros LIMIT 1000;&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORALL i IN 1 .. registros.count SAVE EXCEPTIONS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert into TRASPASO_BD_CLIENTE values registros(i);&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN dml_errores THEN&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;errores := SQL%BULK_EXCEPTIONS.COUNT;&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contador_errores := contador_errores + errores;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FOR i IN 1..errores LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbms_output.put_line            ('Se encontro el error '||&lt;b&gt;;SQL%BULK_EXCEPTIONS(i).ERROR_INDEX&lt;/b&gt; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;':'||&lt;b&gt;SQL%BULK_EXCEPTIONS(i).ERROR_CODE);&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end loop;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit when c%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;END LOOP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;close c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbms_output.put_line( contador_errores );&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Su coste de ejecución es idéntico al de ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;b&gt;insert into TABLA_DESTINO select * from TABLA_ORIGEN; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comparativa de costes de ejecución.&lt;br /&gt;******************************&lt;br&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;insert into TRASPASO_BD_CLIENTE select * from BK_CLIENTE_BDM_03&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elapsed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;Parse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.91&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 102.61&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15713&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;31424&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;88189&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;Fetch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;total&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.91&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 102.62&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15713&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;31425&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;88189&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;********************************************************************************&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type clientes_array is table of BK_CLIENTE_BDM_03%rowtype index by binary_integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;registros&amp;nbsp;&amp;nbsp; clientes_array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;errores NUMBER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dml_errores EXCEPTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contador_errores number := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRAGMA exception_init(dml_errores, -24381);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cursor c is select * from BK_CLIENTE_BDM_03;&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; open c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fetch c BULK COLLECT INTO registros LIMIT 1000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORALL i IN 1 .. registros.count SAVE EXCEPTIONS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert into TRASPASO_BD_CLIENTE values registros(i);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN dml_errores THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;errores := SQL%BULK_EXCEPTIONS.COUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contador_errores := contador_errores + errores;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FOR i IN 1..errores LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbms_output.put_line&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;('Se encontrs el error ' &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL%BULK_EXCEPTIONS(i).ERROR_INDEX &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ': ' &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SQL%BULK_EXCEPTIONS(i).ERROR_CODE );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end loop;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit when c%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;END LOOP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;close c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbms_output.put_line( contador_errores &lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elapsed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;Parse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;Fetch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;total&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT * FROM BK_CLIENTE_BDM_03&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elapsed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;Parse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;Fetch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;601&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;65.99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15712&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16373&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;total&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;603&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;65.99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15712&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16373&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;&lt;br /&gt;INSERT INTO TRASPASO_BD_CLIENTE&lt;br /&gt;VALUES&lt;br /&gt; (:B1 ,:B2 ,:B3 ,:B4 ,:B5 ,:B6 ,:B7 ,:B8 ,:B9 ,:B10 ,:B11 ,:B12 ,:B13 ,:B14 ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;:B15 ,:B16 ,:B17 ,:B18 ,:B19 ,:B20 ,:B21 ,:B22 ,:B23 ,:B24 ,:B25 ,:B26 ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;:B27 ,:B28 ,:B29 ,:B30 ,:B31 ,:B32 ,:B33 ,:B34 ,:B35 ,:B36 ,:B37 ,:B38 ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;:B39 ,:B40 ,:B41 ,:B42 ,:B43 ,:B44 ,:B45 ,:B46 ,:B47 )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elapsed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;Parse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;26.39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15835&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;87647&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;Fetch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;------- ------&amp;nbsp;&amp;nbsp;-------- ---------- ---------- ---------- ----------&amp;nbsp;&amp;nbsp;----------&lt;br /&gt;total&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;601&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;26.39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15835&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;87647&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;&lt;br /&gt;********************************************************************************&lt;br /&gt;&lt;br /&gt;RESUMEN:&lt;br /&gt;&lt;br /&gt;Insert Select&amp;nbsp;&amp;nbsp;--&gt;&amp;nbsp;&amp;nbsp; Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.91&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;102.61&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15713&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;31424&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;88189&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BULK INSERT&amp;nbsp;&amp;nbsp; --&gt;&amp;nbsp;&amp;nbsp; Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fetch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;601&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;65.99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15712&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16373&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;26.39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15835&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;87647&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600000&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tiempo insert select: 1'42''&amp;nbsp; (mismos bloques físicos y en caché) &lt;br /&gt;Tiempo bulk insert:&amp;nbsp; 1'33''&amp;nbsp; (mismos bloques físicos y en caché)&lt;br /&gt;No hay diferencia...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112156557548855732?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112156557548855732/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112156557548855732' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112156557548855732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112156557548855732'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/uso-de-cursores-y-bulk-insert.html' title='Uso de cursores y bulk insert.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14547184.post-112153621267147012</id><published>2005-07-16T19:36:00.000+02:00</published><updated>2005-07-16T19:50:12.676+02:00</updated><title type='text'>Quien soy.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hola,&lt;br /&gt;&lt;br /&gt;Mi nombre es Javier Morales. Desde el año 1999 estoy enteramente dedicado al desarrollo y la administración de bases de datos Oracle. En el junio de 2003 me certifiqué en Administración de Oracle8i y en la actualidad trabajo como consultor, administrador y formador senior.&lt;br /&gt;&lt;br /&gt;Tengo la opinión personal de que el conocimiento es un valor que aumenta cuanto más se comparte. También pienso que existe mucho desconocimiento en plataformas Oracle, debido a que muchos expertos no comparten su conocimiento. Quizás alguien podría cuestionarles al respecto.&lt;br /&gt;&lt;br /&gt;Mi intención al abrir este blog es compartir conclusiones, tests, comparativas, artículos, etc. con la idea no sólo de publicar parte de mi trabajo, sino también de poder contrastar opiniones con otros usuarios de Oracle, bien administradores, desarrolladores o analistas.&lt;br /&gt;&lt;br /&gt;Espero que estos artículos puedan servir de ayuda para los lectores, y que éste sea un inicio a una nueva experiencia personal.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14547184-112153621267147012?l=oraclexperto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oraclexperto.blogspot.com/feeds/112153621267147012/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14547184&amp;postID=112153621267147012' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112153621267147012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14547184/posts/default/112153621267147012'/><link rel='alternate' type='text/html' href='http://oraclexperto.blogspot.com/2005/07/quien-soy.html' title='Quien soy.'/><author><name>Javier Morales</name><uri>http://www.blogger.com/profile/10163552682362957493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iWQ-Ik0LCUQ/S3E0kll_haI/AAAAAAAAAAc/-5r73kkmWGg/S220/Javier.jpg'/></author><thr:total>2</thr:total></entry></feed>
