Cómo exportar e importar una tabla con minúsculas en Oracle

Hola a todos, esta semana vamos a daros un ejemplo sobre cómo exportar e importar una tabla creada con mayúsculas y minúsculas con Oracle.

Como DBAs nos piden varias veces hacer movimientos de tabla, schemas, etc… sea para un entorno de producción, desarrollo o test. En este caso podemos encontrarnos con una tabla que esta creada en mayúscula y minúscula como el ejemplo que vamos a ver. 

Cómo Exportar una tabla en Mayúscula y Minúscula con Oracle.

En primer lugar, haremos una SELECT para saber el owner y el nombre del objeto de la tabla con la que vamos a trabajar.

SQL> set pages 200
SQL> set lines 200
SQL> set timing on
SQL> col owner for a15
SQL> col table_name for a40
SQL> select owner, table_name from dba_tables where table_name = 'WorkflowDefinitions' and owner = 'ORDEN';

OWNER TABLE_NAME
--------------- ----------------------------------------
ORDEN WorkflowDefinitions

Transcurrido: 00:00:00.00
SQL>

La tabla esta en el owner “ORDEN” y tiene como nombre “WorkflowDefinitions”. Como pueden ver tiene Mayúscula y minúscula.

exportar importar oracle

Cómo Exportar la tabla “WorkflowDefinitions”  

Como se puede ver el nombre de la tabla posee mayúscula y minúscula. Si ejecutamos el siguiente comando de Datapump para exportar la tabla, nos indicará el siguiente error:

[oracle@localhost ORACLE_1]$ expdp "'/ as sysdba'" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.DMP logfile=EXP_TABLE_WORKFLOW.log tables=ORDEN.WorkflowDefinitions

Export: Release 19.0.0.0.0 - Production on Wed Jun 26 11:18:48 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Iniciando "SYS"."SYS_EXPORT_TABLE_02": "/******** AS SYSDBA" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.DMP logfile=EXP_TABLE_WORKFLOW.log tables=ORDEN.WorkflowDefinitions
ORA-39166: El objeto ORDEN.WORKFLOWDEFINITIONS no se ha encontrado o no se ha podido exportar o importar.
ORA-31655: no se ha seleccionado ningun objeto de datos ni de metadatos para el trabajo

El trabajo "SYS"."SYS_EXPORT_TABLE_02" ha terminado con 2 error(es) en Mie Jun 26 11:19:00 2024 elapsed 0 00:00:10

Al ejecutar el export de la tabla nos arroja el error “ORA-31655 El objeto ORDEN.WORKFLOWDEFINITIONS no se ha encontrado o no se ha podido exportar o importar”. Esto ocurre porque al intentar realizar la exportación no encuentra la tabla y para solucionar es importante añadir comillas dobles y \ para escapar caracteres, como por ejemplo:

[oracle@localhost ORACLE_1]$ expdp "'/ as sysdba'" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.DMP logfile=EXP_TABLE_WORKFLOW.log tables="ORDEN".\"WorkflowDefinitions\"

Export: Release 19.0.0.0.0 - Production on Wed Jun 26 11:19:24 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Iniciando "SYS"."SYS_EXPORT_TABLE_02": "/******** AS SYSDBA" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.DMP logfile=EXP_TABLE_WORKFLOW.log tables=ORDEN."WorkflowDefinitions"
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE_DATA
Procesando el tipo de objeto TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Procesando el tipo de objeto TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Procesando el tipo de objeto TABLE_EXPORT/TABLE/STATISTICS/MARKER
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE
Procesando el tipo de objeto TABLE_EXPORT/TABLE/INDEX/INDEX
Procesando el tipo de objeto TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
. . "ORDEN"."WorkflowDefinitions" 17.35 MB 125 filas exportadas
La tabla maestra "SYS"."SYS_EXPORT_TABLE_02" se ha cargado/descargado correctamente
******************************************************************************
El juego de archivos de volcado para SYS.SYS_EXPORT_TABLE_02 es:
/SERVER01/backup/dumps/ORACLE_1/EXP_TABLE_WORKFLOW.DMP
El trabajo "SYS"."SYS_EXPORT_TABLE_02" ha terminado correctamente en Mie Jun 26 11:20:01 2024 elapsed 0 00:00:37

[oracle@localhost ORACLE_1]$

Cómo Importar una tabla con minúsculas

Para la importación usaremos el mismo parámetro de TABLES para que pueda reconocer la tabla y también haremos el ejercicio de cambiar el usuario y tablespace de origen usando el parámetro de REMAP_SCHEMA y REMAP_TABLESPACE:

[oracle@localhost ORACLE_1]$ impdp "'/ as sysdba'" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.dmp TABLES="ORDEN".\"WorkflowDefinitions\" remap_schema=ORDEN:TELEGRAMA remap_tablespace=TBS_ORDEN_DATA:TBS_TELEGRAMA_DATA logfile=IMP_EXP_TABLE_WORKFLOW.log

Import: Release 19.0.0.0.0 - Production on Thu Jun 13 12:48:22 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
La tabla maestra "SYS"."SYS_IMPORT_TABLE_02" se ha cargado/descargado correctamente
Iniciando "SYS"."SYS_IMPORT_TABLE_02": "/******** AS SYSDBA" directory=EXPORTS_BACKUP dumpfile=EXP_TABLE_WORKFLOW.dmp TABLES=ORDEN."WorkflowDefinitions" remap_schema=ORDEN:TELEGRAMA remap_tablespace=TBS_ORDEN_DATA:TBS_TELEGRAMA_DATA logfile=IMP_EXP_TABLE_WORKFLOW.log
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/TABLE
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
. . "TELEGRAMA"."WorkflowDefinitions" 11.21 MB 73 filas importadas
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINT
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Procesando el tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
Procesando el tipo de objeto DATABASE_EXPORT/STATISTICS/MARKER
El trabajo "SYS"."SYS_IMPORT_TABLE_02" ha terminado correctamente en Jue Jun 13 12:48:43 2024 elapsed 0 00:00:21

[oracle@localhost ORACLE_1]$

Esperamos que esta entrada os haya ayudado para lidiar con esta casuística. Si se complica, o prefieres que lo hagamos nosotros, puedes ponerte en contacto con nosotros. Disponemos de servicio de soporte y mantenimiento Oracle para que nos ocupemos nosotros y quitarte un dolor de cabeza.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *