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.

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
