<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Administración de ORACLE en Español &#187; DATABASE LINK</title>
	<atom:link href="http://colacios.es/blog/WordPress3/tag/database-link/feed/" rel="self" type="application/rss+xml" />
	<link>http://colacios.es/blog/WordPress3</link>
	<description>Administración de Base de datos ORACLE en español</description>
	<lastBuildDate>Tue, 11 Mar 2014 12:56:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Crear una tabla con contenido mediante database link de una base de datos a otra</title>
		<link>http://colacios.es/blog/WordPress3/crear-una-tabla-con-contenido-mediante-database-link-de-una-base-de-datos-a-otra/</link>
		<comments>http://colacios.es/blog/WordPress3/crear-una-tabla-con-contenido-mediante-database-link-de-una-base-de-datos-a-otra/#comments</comments>
		<pubDate>Thu, 31 Oct 2013 11:31:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[as select]]></category>
		<category><![CDATA[create table]]></category>
		<category><![CDATA[DATABASE LINK]]></category>
		<category><![CDATA[DBLINK]]></category>
		<category><![CDATA[STORAGE]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=647</guid>
		<description><![CDATA[En la siguiente entrada de Blog, voy a explicar como crear una tabla con contenido en una base de datos Oracle accediendo a otra base de datos Oracle mediante un database Link. Además voy a mostrar que la creación de &#8230; <a href="http://colacios.es/blog/WordPress3/crear-una-tabla-con-contenido-mediante-database-link-de-una-base-de-datos-a-otra/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En la siguiente entrada de Blog, voy a explicar como <span style="text-decoration: underline;">crear una tabla con contenido</span> en una base de datos Oracle accediendo a otra base de datos Oracle mediante un database Link. Además voy a mostrar que la creación de la tabla en destino puede presentar diferencias de storage dependiendo de cómo la creemos. Si queremos que sea idéntica a la de origen, tendremos que copiar sus parámetros de storage en la sentencia de creación. Esto es una manera de crear una tabla con contenido sin necesidad de utilizar las utilidades exp/imp ni expdp/impdp.</p>
<p style="text-align: justify;">Esto es muy útil cuando queremos crear una tabla que tenemos en Desarrollo o Pre-producción y queremos pasarlo al entorno de producción.</p>
<p style="text-align: justify;">Para el ejemplo daré por hecho que tenemos un Data Base Link creado que permite acceder a la Base de datos de destino. Un database link se crea de la siguiente manera:</p>
<pre style="text-align: justify;">CREATE PUBLIC DATABASE LINK "<em>MY_DBLINK</em>"
CONNECT TO <em>USUARIO_PRUEBA</em>
IDENTIFIED BY  "<em>&lt;pwd_usuario&gt;</em>"
USING '&lt;cadena_conexión&gt;'; <strong>-- Esto consiste en una cadena de conexión que debe estar en tnsnames.ora</strong></pre>
<p style="text-align: justify;">Puedes ampliar información sobre DBLinks <a href="http://colacios.es/blog/WordPress3/manipular-una-tabla-de-un-entorno-oracle-desde-otro-entorno-oracle-mediante-dblink/" target="_blank">aqui</a></p>
<p style="text-align: justify;">Para comprobar que el DBLink funciona, podemos hacer la consulta hacia la tabla que queremos copiar de la siguiente  manera:</p>
<pre>SQL&gt; SELECT * FROM USUARIO_PRUEBA.TABLA@MY_DBLINK;</pre>
<p style="text-align: justify;"> Ahora creamos la tabla con el contenido de la siguiente manera:</p>
<p style="text-align: justify;">- Primero nos conectamos a la Base de datos, con el usuario que corresponda, donde queremos crear la tabla con el contenido:</p>
<pre>sqlplus usuario_prueba@cadena_conexion</pre>
<p>- Ahora creamos la tabla &#8230;</p>
<pre style="text-align: justify;">SQL&gt; <strong>CREATE TABLE</strong> usuario_prueba.nombre_tabla <strong>AS SELECT</strong> * from USUARIO_PRUEBA.TABLA@MY_DBLINK;</pre>
<p style="text-align: justify;">Esta sentencia creará la tabla en el destino con su contenido, pero los parámetros de STORAGE serán los que tenga el tablespace donde esta asignado &#8220;usuario_prueba&#8221;. Es decir, no cogerá los valores de STORAGE que tiene la tabla en origen.</p>
<p style="text-align: justify;">Ahora probaremos con otro ejemplo, donde si detallamos el STORAGE que queremos y el tablespace donde queremos ubicar la tabla.</p>
<pre style="text-align: justify;">CREATE TABLE usuario_prueba.nombre_tabla
 <strong>TABLESPACE</strong> tablespace
 PCTUSED    40
 PCTFREE    10
 INITRANS   1
 MAXTRANS   255
 <strong>STORAGE  </strong>  (
 INITIAL          10016K
 NEXT             10000K
 MINEXTENTS       1
 MAXEXTENTS       499
 PCTINCREASE      0
 FREELISTS        1
 FREELIST GROUPS  1
 BUFFER_POOL      DEFAULT
 )
 LOGGING
 NOCACHE
 NOPARALLEL <strong>AS SELECT</strong> * FROM <strong>USUARIO_PRUEBA.TABLA@MY_DBLINK</strong>;</pre>
<p style="text-align: justify;">En este otro ejemplo, el storage que tendrá la tabla será el especificado en la misma sentecia CREATE TABLE, y los datos los cogerá exactamente igual que la sentencia anterior.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/crear-una-tabla-con-contenido-mediante-database-link-de-una-base-de-datos-a-otra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manipular una tabla de un entorno Oracle desde otro entorno Oracle mediante DBLINK</title>
		<link>http://colacios.es/blog/WordPress3/manipular-una-tabla-de-un-entorno-oracle-desde-otro-entorno-oracle-mediante-dblink/</link>
		<comments>http://colacios.es/blog/WordPress3/manipular-una-tabla-de-un-entorno-oracle-desde-otro-entorno-oracle-mediante-dblink/#comments</comments>
		<pubDate>Thu, 17 Oct 2013 09:34:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[DATABASE LINK]]></category>
		<category><![CDATA[GRANT]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=609</guid>
		<description><![CDATA[Probablemente como administradores de Oracle nos habrán solicitado lo siguiente: Querer consultar o modificar una tabla que está en un Servidor Oracle con un usuario que está en otro servidor Oracle. Para poder realizar esta tarea, basta con crear un &#8230; <a href="http://colacios.es/blog/WordPress3/manipular-una-tabla-de-un-entorno-oracle-desde-otro-entorno-oracle-mediante-dblink/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Probablemente como administradores de Oracle nos habrán solicitado lo siguiente:</p>
<p style="text-align: justify;"><em>Querer consultar o modificar una tabla que está en un Servidor Oracle con un usuario que está en otro servidor Oracle.</em></p>
<p style="text-align: justify;">Para poder realizar esta tarea, basta con <span style="text-decoration: underline;">crear un dblink entre ambas bases de datos</span> y crearlo de manera PUBLIC y posteriormente <span style="text-decoration: underline;">asignar los privilegios</span>(GRANT) de la tabla que queremos poder ver a PUBLIC. Dicha asignación de permisos a PUBLIC la realizaremos en el servidor Oracle donde está la tabla que queremos ver. Para ver que tipo de GRANT podemos asignar puedes consultar esta <a title="GRANT en función del objeto destino" href="http://colacios.es/blog/WordPress3/que-grantse-puede-dar-en-funcion-del-objeto-destino-en-oracle" target="_blank">entrada de blog</a>.</p>
<p style="text-align: justify;">Ejemplo:</p>
<p style="text-align: justify;">En el servidor &#8220;origen&#8221; creamos el dblink public:</p>
<pre style="text-align: justify;">CREATE <strong>PUBLIC</strong> DATABASE LINK "<em>DBLINK_DESTINO</em>"
CONNECT TO <em>SYSTEM</em> <strong>--&gt; o el usuario que queramos usar</strong>
IDENTIFIED BY "&lt;pwd&gt;"
USING '<em>CADENA_CONEXION_DESTINO</em>'; <strong>--&gt; que existirá en tnsnames.ora </strong>
<strong>del servidor Origen y donde se especifica el servidor, puerto, etc...</strong>
<strong>donde conectaremos cuando hagamos las consultas</strong></pre>
<p style="text-align: justify;">Luego en el servidor &#8220;destino&#8221;:</p>
<p style="text-align: justify;">Ejecutaremos desde sqlplus por ejemplo y con el propietario de la tabla en cuestión:</p>
<pre style="text-align: justify;">GRANT ALL ON &lt;nombre_propietario&gt;.&lt;nombre_tabla&gt; TO <strong>PUBLIC</strong>;</pre>
<p style="text-align: justify;">Para mejorar lo anterior y evitar tener que escribir el nombre del propietario en las consultas, podemos crear un sinónimo de esta manera:</p>
<pre style="text-align: justify;">CREATE <strong>PUBLIC</strong> SYNONYM &lt;nombre_tabla&gt; FOR &lt;nombre_propietario&gt;.&lt;nombre_tabla&gt;;</pre>
<p style="text-align: justify;">Lo importante de las sentencias anteriores es especificar &#8220;PUBLIC&#8221; de esta manera los privilegios se hacen disponibles a todos los usuarios de la base de datos. Y mediante el dblink, también lo haces disponibles a aquellos usuarios que puedan conectarse mediante ese dblink, que en este ejemplo son todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/manipular-una-tabla-de-un-entorno-oracle-desde-otro-entorno-oracle-mediante-dblink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
