{"id":13076,"date":"2018-09-25T16:40:21","date_gmt":"2018-09-25T23:40:21","guid":{"rendered":"http:\/\/clartechsolutions.com\/?p=13076"},"modified":"2023-03-01T01:59:17","modified_gmt":"2023-03-01T01:59:17","slug":"enlaces-de-base-de-datos-en-oracle-apex-5-0","status":"publish","type":"post","link":"https:\/\/kiusi.com\/en\/enlaces-de-base-de-datos-en-oracle-apex-5-0\/","title":{"rendered":"Enlaces de Base de Datos en Oracle Apex 5.0"},"content":{"rendered":"<p>Muchas veces nos puede pasar que tenemos nuestra aplicaci\u00f3n en una base de datos Oracle y necesitamos acceder a otra base de datos Oracle en forma remota para acceder a ciertos datos que se encuentran en la base de datos remota y poder trabajarlo en nuestra aplicaci\u00f3n APEX de manera local. Y en otras oportunidades puede que necesitemos desde nuestra aplicaci\u00f3n Apex acceder a datos de otra base de datos que no es Oracle.<\/p>\n<p>Hoy vamos a ver dos escenarios diferentes, por un lado c\u00f3mo crear un Enlace de Base de Datos en Oracle Application Express y mostrar los datos remotos de otra base de datos Oracle XE y el segundo escenario, c\u00f3mo crear un Enlace de Base de Datos desde una base de datos Oracle XE a otra base de datos MySQL.<\/p>\n<h2><strong>Escenario 1 &#8211; Crear Enlace de Base de Datos de Oracle XE a Oracle XE Remota<\/strong><\/h2>\n<p>Tengo instalada en mi PC local una base de datos Oracle 11g XE con Oracle Application Express&nbsp; 5.0.1 (PC1)<\/p>\n<p>Y por otro lado tengo una m\u00e1quina virtual en Hyper-V con Windows 7 Enterprise SP1 de 32-bit y Apex 5.0 (PC2)<\/p>\n<h3><strong>PC2 &#8211; M\u00e1quina Virtual<\/strong><\/h3>\n<p>Ingresamos a una ventana de comandos CMD<\/p>\n<pre>C:\\&gt; sqlplus \/nolog<\/pre>\n<p>Ingresamos las credenciales del usuario System para verificar que esquemas tenemos disponibles.<\/p>\n<p>En mi caso dispongo de los siguientes esquemas:<\/p>\n<pre>SQL&gt; select username from dba_users;\nUSERNAME\n------------------------------\nDEMO\nDEMO_APEX<\/pre>\n<pre><span style=\"color: #008000;\"><strong>CURSO_APEX<\/strong><\/span><\/pre>\n<pre>APEX_050000 HR ANONYMOUS XDB FLOWS_FILES APEX_040000 CTXSYS MDSYS SYSTEM SYS APEX_PUBLIC_USER XS$NULL OUTLN<\/pre>\n<p>Vamos a trabajar con el esquema CURSO_APEX<\/p>\n<p>Ingresamos al esquema<\/p>\n<pre>SQL&gt; connect miusuario\/mipassword@SID\n\nSQL&gt; connect curso_apex\/cursoapex@xe<\/pre>\n<p>Para conocer las tablas disponibles del usuario curso_apex<\/p>\n<pre>SQL&gt; select table_name from user_tables;\n\nTABLE_NAME\n------------------------------\nDEPT\nEMP\nDEMO_TAGS\nDEMO_TAGS_TYPE_SUM\nDEMO_TAGS_SUM\nDEMO_CUSTOMERS\nDEMO_ORDERS\nDEMO_PRODUCT_INFO\nDEMO_ORDER_ITEMS\nDEMO_STATES\nDEMO_CONSTRAINT_LOOKUP\nAPEX$_ACL\nAPEX$_WS_WEBPG_SECTIONS\nAPEX$_WS_ROWS\nAPEX$_WS_HISTORY\nAPEX$_WS_NOTES\nAPEX$_WS_LINKS\nAPEX$_WS_TAGS\nAPEX$_WS_FILES\nAPEX$_WS_WEBPG_SECTION_HISTORY\nAPEX$TEAM_DEV_FILES\nEDU_DEPARTAMENTOS\nEDU_PAISES\nEDU_ALUMNOS\nEDU_PROFESORES\nEDU_CURSOS\nEDU_MATRICULAS\nEDU_MATRICULA_CURSOS\nHTMLDB_PLAN_TABLE\nEBA_UT_CHART_PROJECTS\nEBA_UT_CHART_TASKS\nDEMO_CALENDARIO\nEBA_DEMO_CAL_PROJECTS\nMIS_CURSOS\n34 rows selected.<\/pre>\n<p>Vamos a usar la tabla EDU_DEPARTAMENTOS para nuestro ejemplo.<\/p>\n<pre>SQL&gt; select depto_id c1, nombre c2 from edu_departamentos;\n &nbsp; ID Departamento\n----- ------------------------------\n &nbsp;&nbsp; 1 Sistemas Inform\u00e1ticos\n &nbsp;&nbsp; 2 Negocios\n &nbsp;&nbsp; 3 Dise\u00f1o Gr\u00e1fico\n &nbsp;&nbsp; 4 Arte Pl\u00e1stica\n &nbsp;&nbsp; 5 Idiomas<\/pre>\n<p>Para ingresar a Oracle Apex desde la PC2 ingresamos la URL <a href=\"http:\/\/localhost:8080\/apex\">http:\/\/localhost:8080\/apex<\/a> en el navegador.<\/p>\n<p><strong>Nota:<\/strong> Verificar qu\u00e9 puerto se utiliz\u00f3 cuando se realiz\u00f3 la instalaci\u00f3n de Apex.<\/p>\n<p>Luego ingresamos nuestras credenciales para acceder a la p\u00e1gina de inicio de Apex.<\/p>\n<p>Para crear el Enlace de Base de Datos en APEX desde la PC1, necesitamos conocer los siguientes datos de la m\u00e1quina remota (PC2):<\/p>\n<ul>\n<li>Nombre del esquema al que queremos acceder<\/li>\n<li>La contrase\u00f1a<\/li>\n<li>La IP de su m\u00e1quina remota o el nombre del host<\/li>\n<li>EL puerto donde escucha la base de datos<\/li>\n<li>El SID de la base de datos<\/li>\n<\/ul>\n<h3><strong>PC1 &#8211; Local<\/strong><\/h3>\n<p>Ingresamos las credenciales de inicio de sesi\u00f3n para ingresar a la p\u00e1gina de inicio de APEX.<\/p>\n<p>Antes de crear el Enlace de Base de Datos necesitamos darle permisos de creaci\u00f3n de enlace de base de datos a nuestro usuario, en mi caso mi usuario es CLARTECH.<\/p>\n<p>Abrimos una ventana de CMD y abrimos el SQLPlus con las credenciales de sysdba<\/p>\n<pre>C:\\Users\\Clarisa&gt;sqlplus \/nolog\nSQL&gt; connect sys as sysdba\nEnter password:\nConnected.\nSQL&gt;\nSQL&gt; grant create database link to clartech;\nGrant succeeded.<\/pre>\n<h3><strong>PC1 &#8211; Crear Enlace de Base de Datos en Apex<\/strong><\/h3>\n<p>Ingresamos a la p\u00e1gina de inicio de Apex, hacemos clic en el m\u00f3dulo del Taller de SQL y luego hacemos clic en el m\u00f3dulo Explorador de Objetos<\/p>\n<p>En la esquina superior derecha hacemos clic en el signo + para crear un \u201cEnlace de Base de Datos\u201d (dblink) y se abre el asistente, e ingresamos los siguientes datos y hacemos clic en el bot\u00f3n siguiente:<\/p>\n<p><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-13077\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img01.png?resize=750%2C348\" alt=\"\" width=\"750\" height=\"348\"><\/p>\n<p>Nombre del esquema al que queremos acceder: <strong>curso_apex<\/strong><\/p>\n<p>La contrase\u00f1a: <strong>cursoapex<\/strong><\/p>\n<p>La IP de su m\u00e1quina remota o el nombre del host: <strong>Win7Apex5<\/strong><\/p>\n<p>EL puerto donde escucha la base de datos: <strong>1521<\/strong><\/p>\n<p>El SID de la base de datos: <strong>XE<\/strong><\/p>\n<p><u>Nota:<\/u> Si el password tiene may\u00fasculas y min\u00fasculas tener en cuenta de que este encerrado entre comillas dobles para que se guarde correctamente.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full wp-image-13078\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img02-1.jpg?resize=750%2C353\" alt=\"\" width=\"750\" height=\"353\"><\/p>\n<p>En la pantalla de confirmaci\u00f3n, hacemos clic en el bot\u00f3n <strong>Crear Enlace de Base de Datos<\/strong>.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full wp-image-13079\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img03-1.jpg?resize=750%2C206\" alt=\"\" width=\"750\" height=\"206\"><\/p>\n<p>Podemos probar el Enlace de Base de Datos reci\u00e9n creado haciendo clic en el bot\u00f3n <strong>Probar <\/strong>y luego hacemos clic en el bot\u00f3n <strong>Terminar<\/strong> y nos muestra que el enlace funciona correctamente.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13080\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img04-1.jpg?resize=484%2C163\" alt=\"\" width=\"484\" height=\"163\"><\/p>\n<h3><strong>Consultar datos a base de datos remota desde el Taller SQL<\/strong><\/h3>\n<p>Desde la PC1 ingresamos al Taller de SQL y consultamos la tabla EDU_DEPARTAMENTOS de la PC2<\/p>\n<pre>Select * from [esquema].[nombre_tabla]@[dblink]\n\nSelect * from curso_apex.edu_departamentos@pruebadblink \n\n<img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13087\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img5-1.jpg?resize=750%2C329\" alt=\"\" width=\"750\" height=\"329\"><\/pre>\n<h3><\/h3>\n<h3><strong>Crear una vista en Oracle Apex<\/strong><\/h3>\n<p>Desde el Explorador de Objetos en el Taller SQL creamos una vista a partir de la siguiente consulta:<\/p>\n<pre>select * from curso_apex.edu_departametos@pruebadblink<\/pre>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13088\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img6-1.jpg?resize=750%2C347\" alt=\"\" width=\"750\" height=\"347\"><\/p>\n<h3><strong>Crear Informe Interactivo de la Vista<\/strong><\/h3>\n<p>Para mostrar los datos de la tabla remota utilizamos la vista reci\u00e9n creada y de ese modo tenemos acceso a los datos remotos.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13089\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img7-1.jpg?resize=750%2C266\" alt=\"\" width=\"750\" height=\"266\"><\/p>\n<h2><strong>Escenario 2 &#8211; Crear Enlace de Base de Datos desde Oracle XE a MySQL<\/strong><\/h2>\n<p>M\u00e1quina virtual con Windows 7 Enterprise SP1 de 32-bit<\/p>\n<p>Base de Datos Oracle 11g XE<\/p>\n<p>Oracle Apex 5.0<\/p>\n<p>Base de Datos MySQL5.6<\/p>\n<h3><strong>M\u00e1quina Virtual<\/strong><\/h3>\n<p>Abrimos una ventana de comandos CMD y realizamos las siguientes operaciones:<\/p>\n<pre>### Conectarse a MySQL ###\nC:\\Users\\Admin&gt;mysql -u root -p\nEnter password: **********\n\n### Crear Base de Datos demomysql ###\nmysql&gt; create database demomysql;\nQuery OK, 1 row affected (0.00 sec)\n\n### Llamar a la base de datos ###\nmysql&gt; use demomysql\nDatabase changed\n\n### Crear Usuario demo ###\nmysql&gt; create user 'demo'@'localhost' identified by 'demo123';\nQuery OK, 0 rows affected (0.00 sec)\n\n### Conceder permisos al usuario ###\nmysql&gt; GRANT ALL PRIVILEGES ON *.* TO 'demo'@'localhost' WITH GRANT OPTION;\nQuery OK, 0 rows affected (0.00 sec)\n\n### Crear Tabla demo ###\nmysql&gt; create table demo\n &nbsp;&nbsp; -&gt; (indiceid int unsigned not null auto_increment primary key,\n &nbsp;&nbsp; -&gt; col1 char (40) not null,\n &nbsp;&nbsp; -&gt; col2 char (20) not null,\n &nbsp;&nbsp; -&gt; col3 char (10) not null,\n &nbsp;&nbsp; -&gt; col4 char (20) not null,\n &nbsp;&nbsp; -&gt; col5 char (15) not null);\nQuery OK, 0 rows affected (0.16 sec)\n\n### Mostrar la Tabla demo ###\nmysql&gt; show tables;\n+---------------------+\n| Tables_in_demomysql |\n+---------------------+\n| demo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n+---------------------+\n1 row in set (0.00 sec)\n\n### Describir la tabla demo ###\nmysql&gt; describe demo;\n+----------+------------------+------+-----+---------+----------------+\n| Field&nbsp;&nbsp;&nbsp; | Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Null | Key | Default | Extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n+----------+------------------+------+-----+---------+----------------+\n| indiceid | int(10) unsigned | NO&nbsp;&nbsp; | PRI | NULL&nbsp;&nbsp;&nbsp; | auto_increment |\n| col1&nbsp;&nbsp;&nbsp;&nbsp; | char(40)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NO&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n| col2&nbsp;&nbsp;&nbsp;&nbsp; | char(20)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NO&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n| col3&nbsp;&nbsp;&nbsp;&nbsp; | char(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;| NO&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n| col4&nbsp;&nbsp;&nbsp;&nbsp; | char(20)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NO&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n| col5&nbsp;&nbsp;&nbsp;&nbsp; | char(15)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NO&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\n+----------+------------------+------+-----+---------+----------------+\n6 rows in set (0.03 sec)\n\n### ingresar un registro a la tabla demo ###\nmysql&gt; INSERT INTO demo\n &nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (col1, col2, col3, col4, col5)\n &nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUES\n &nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (\"dato1\", \"dato2\", \"dato3\",\"dato4\",\"dato5\");\nQuery OK, 1 row affected (0.04 sec)\n\n### Mostrar la tabla demo con datos ###\nmysql&gt; select * from demo;\n+----------+-------+-------+-------+-------+-------+\n| indiceid | col1&nbsp; | col2&nbsp; | col3&nbsp; | col4&nbsp; | col5&nbsp; |\n+----------+-------+-------+-------+-------+-------+\n|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 | dato1 | dato2 | dato3 | dato4 | dato5 |\n+----------+-------+-------+-------+-------+-------+\n1 row in set (0.00 sec)<\/pre>\n<h3><strong>Crear ODBC para la conexi\u00f3n <\/strong><\/h3>\n<p>Cada sistema operativo tiene su propia ruta de localizaci\u00f3n de los archivos.<\/p>\n<p>En Windows 7 Enterprise se encuentra:<\/p>\n<p>Inicio &#8211; Panel de Control<\/p>\n<p style=\"padding-left: 40px;\">&#8212;&gt; Sistema y Seguridad<\/p>\n<p style=\"padding-left: 80px;\">&#8212;&gt; Herramientas Administrativas<\/p>\n<p style=\"padding-left: 120px;\">&#8212;&gt; Or\u00edgenes de datos (ODBC)<\/p>\n<p>Hacemos doble clic sobre Or\u00edgenes de datos (ODBC) para abrir la ventana emergente y en la ficha <strong>DNS de Sistema <\/strong>vamos a agregar un nuevo ODBC.<\/p>\n<p><strong><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13090\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img8-1.jpg?resize=477%2C360\" alt=\"\" width=\"477\" height=\"360\">&nbsp;<\/strong><\/p>\n<p><strong>&nbsp;<\/strong>Y hacemos clic en Finish y se abre otra ventana modal para ingresar los siguientes datos de conexi\u00f3n:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13091\" src=\"https:\/\/i0.wp.com\/clartechsolutions.com\/wp-content\/uploads\/2019\/04\/img9.jpg?resize=434%2C414\" alt=\"\" width=\"434\" height=\"414\"><\/p>\n<p>Nombre de Enlace de Base de Datos: <strong>mysql<\/strong><\/p>\n<p>Conectar a Esquema: <strong>demo<\/strong><\/p>\n<p>Contrase\u00f1a: <strong>demo123<\/strong><\/p>\n<p>IP o Nombre de Host Remoto: <strong>localhost<\/strong><\/p>\n<p>Puerto de Host Remoto: <strong>1521<\/strong><\/p>\n<p>Identificado por: <strong>SID<\/strong><\/p>\n<p>SID o Nombre de Servicio: <strong>mysql<\/strong><\/p>\n<p>Hacemos clic en OK para cerrar las ventanas.<\/p>\n<h3><strong>Crear archivo ODBC<\/strong><\/h3>\n<p>Desde el explorador de archivos nos dirigimos a nuestro ORACLE_HOME<\/p>\n<pre><em>C:\\oraclexe\\app\\oracle\\product\\11.2.0\\server<\/em><\/pre>\n<p>Necesitamos crear un archivo dentro de la carpeta <em>hs\/admin<\/em>, para ello hacemos una copia del archivo <strong>initdg4odbc.ora<\/strong> y le cambiamos el nombre a <strong>initmysql.ora <\/strong>ya que el nombre se define como initSID.ora.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"16197\" data-permalink=\"https:\/\/kiusi.com\/en\/enlaces-de-base-de-datos-en-oracle-apex-5-0\/img10-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img10-1.jpg?fit=220%2C139&amp;ssl=1\" data-orig-size=\"220,139\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"img10-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img10-1.jpg?fit=220%2C139&amp;ssl=1\" class=\"alignnone wp-image-16197 size-full\" src=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img10-1.jpg?resize=220%2C139&#038;ssl=1\" alt=\"\" width=\"220\" height=\"139\" srcset=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img10-1.jpg?w=220&amp;ssl=1 220w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img10-1.jpg?resize=18%2C12&amp;ssl=1 18w\" sizes=\"(max-width: 220px) 100vw, 220px\" \/><\/p>\n<p>Abrimos el archivo para editarlo<\/p>\n<p>Cambiamos esto:<\/p>\n<pre>HS_FDS_CONNECT_INFO = &lt;odbc data_source_name&gt;\nHS_FDS_TRACE_LEVEL = &lt;trace_level&gt;<\/pre>\n<p>Por esto:<\/p>\n<pre>HS_FDS_CONNECT_INFO = mysql\nHS_FDS_TRACE_LEVEL = 0<\/pre>\n<p>Guardamos los cambios y cerramos el archivo.<\/p>\n<h3><strong>Cambios en archivos tnsnames.ora y listener.ora<\/strong><\/h3>\n<p>Volvemos al ORACLE_HOME<\/p>\n<pre><em>C:\\oraclexe\\app\\oracle\\product\\11.2.0\\server<\/em><\/pre>\n<p>Necesitamos realizar unos cambios en los archivos del tnsnames.ora y listener.ora<\/p>\n<p>Para ello vamos a la carpeta network\/ADMIN<\/p>\n<p>Abrimos el listener.ora y agregamos una entrada dentro de la primera secci\u00f3n en SID_LIST_LISTENER<\/p>\n<pre>(SID_DESC =\n &nbsp;&nbsp;&nbsp;&nbsp; (SID_NAME = mysql)\n &nbsp;&nbsp;&nbsp;&nbsp; (ORACLE_HOME = C:\\oraclexe\\app\\oracle\\product\\11.2.0\\server)\n &nbsp;&nbsp;&nbsp;&nbsp; (PROGRAM = dg4odbc)\n &nbsp;&nbsp; )<\/pre>\n<p>Abrimos el archivo tnsnames.ora y agregamos lo siguiente:<\/p>\n<pre>MYSQL =\n  (DESCRIPTION =\n &nbsp;&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))\n &nbsp;&nbsp; (CONNECT_DATA =\n &nbsp;&nbsp;&nbsp;&nbsp; (SID = mysql)\n &nbsp;&nbsp; )\n &nbsp;&nbsp;&nbsp;&nbsp; (HS = OK)\n &nbsp;&nbsp; )<\/pre>\n<p>Como hemos hecho cambios en el listener debemos parar el servicio y reiniciarlo.<\/p>\n<p>Para ello abrimos una ventana de CMD y llamamos al listener con el comando lsnrctl y luego paramos el servicio con el comando:<\/p>\n<pre>LSNRCTL&gt; stop<\/pre>\n<p>Y lo reiniciamos con el comando:<\/p>\n<pre>LSNRCTL&gt; start<\/pre>\n<h3><strong>Conceder permisos al usuario de Apex para crear Enlaces de Base de Datos<\/strong><\/h3>\n<p>Desde una ventana de comandos ingresamos al SQLPlus<\/p>\n<pre>C:\\&gt;sqlplus \/nolog\nSQL&gt; connect sys as sysdba\nEnter password:\nConnected\nSQL&gt; grant create database link to curso_apex;\nGrant succeeded.\nSQL&gt;<\/pre>\n<h3><strong>Crear Enlaces de Base de Datos en Oracle APEX <\/strong><\/h3>\n<pre>SQL&gt; conn curso_apex\/cursoapex@xe\nConnected.\nSQL&gt; show user\nUSER is \"CURSO_APEX\"\nSQL&gt; create database link mysqldblink connect to \"demo\" identified by \"demo123\" using 'mysql';\nDatabase link created.<\/pre>\n<p>Ingresamos a Apex y abrimos el Taller de SQL, hacemos clic en el Explorador de Objetos y luego en Enlaces de Base de Datos y podemos ver el objeto reci\u00e9n creado:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"16198\" data-permalink=\"https:\/\/kiusi.com\/en\/enlaces-de-base-de-datos-en-oracle-apex-5-0\/img11-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?fit=694%2C377&amp;ssl=1\" data-orig-size=\"694,377\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"img11-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?fit=694%2C377&amp;ssl=1\" class=\"alignnone wp-image-16198 size-full\" src=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?resize=694%2C377&#038;ssl=1\" alt=\"\" width=\"694\" height=\"377\" srcset=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?w=694&amp;ssl=1 694w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?resize=300%2C163&amp;ssl=1 300w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img11-1.jpg?resize=18%2C10&amp;ssl=1 18w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/><\/p>\n<h3><strong>Crear una Vista desde Apex de la tabla demomysql<\/strong><\/h3>\n<p>Ingresamos al Taller de SQL e ingresamos la siguiente sentencia:<\/p>\n<pre>create view demo_mysql as select * from demo@mysqldblink<\/pre>\n<p>Creamos un Informe Cl\u00e1sico para mostrar los datos de la vista reci\u00e9n creada.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"16199\" data-permalink=\"https:\/\/kiusi.com\/en\/enlaces-de-base-de-datos-en-oracle-apex-5-0\/img12-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?fit=780%2C393&amp;ssl=1\" data-orig-size=\"780,393\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"img12-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?fit=750%2C378&amp;ssl=1\" class=\"alignnone wp-image-16199 size-full\" src=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?resize=750%2C378&#038;ssl=1\" alt=\"\" width=\"750\" height=\"378\" srcset=\"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?w=780&amp;ssl=1 780w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?resize=300%2C151&amp;ssl=1 300w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?resize=768%2C387&amp;ssl=1 768w, https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/img12-1.jpg?resize=18%2C9&amp;ssl=1 18w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/p>\n<p>De este modo hemos podido mostrar datos que se encuentran almacenados en una tabla de la base de datos MySQL.<\/p>\n<h3><strong>Conclusi\u00f3n<\/strong><\/h3>\n<p>En este art\u00edculo hemos aprendido:<\/p>\n<ul>\n<li>A crear un dblink desde una base de datos Oracle XE a otra base de datos remota Oracle XE instalada en una m\u00e1quina virtual.<\/li>\n<li>A crear un dblink desde una base de datos Oracle XE a otra base de datos MySQL.<\/li>\n<li>A crear un Origen de Datos (ODBC)<\/li>\n<li>A crear el archivo initmysql.ora<\/li>\n<li>A editar los archivos tnsnames.ora y listener.ora<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Muchas veces nos puede pasar que tenemos nuestra aplicaci\u00f3n en una base de datos Oracle y necesitamos acceder a otra base de datos Oracle en forma remota para acceder a ciertos datos que se encuentran en la base de datos remota y poder trabajarlo en nuestra aplicaci\u00f3n APEX de manera local. Y en otras oportunidades<a class=\"more-link\" href=\"https:\/\/kiusi.com\/en\/enlaces-de-base-de-datos-en-oracle-apex-5-0\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Enlaces de Base de Datos en Oracle Apex 5.0&#8221;<\/span><\/a><\/p>","protected":false},"author":132749711,"featured_media":16479,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":true},"categories":[121913,121930],"tags":[121903,121947,121948,121949,121886],"class_list":["post-13076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-oracle-apex-5-0","tag-apex","tag-apex-5","tag-base-de-datos","tag-dblink","tag-oracle","entry"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paMvMS-3oU","amp_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/kiusi.com\/wp-content\/uploads\/2018\/09\/Destacada-Enlaces-de-Base-de-Datos-en-Oracle-Apex-5.0.jpg?fit=2949%2C1735&ssl=1","_links":{"self":[{"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/posts\/13076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/users\/132749711"}],"replies":[{"embeddable":true,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/comments?post=13076"}],"version-history":[{"count":5,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/posts\/13076\/revisions"}],"predecessor-version":[{"id":16480,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/posts\/13076\/revisions\/16480"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/media\/16479"}],"wp:attachment":[{"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/media?parent=13076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/categories?post=13076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kiusi.com\/en\/wp-json\/wp\/v2\/tags?post=13076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}