Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 8 anos, 2 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #108363
    Avatar de buorobuoro
    Participante

      Boa tarde,
      Por gentileza, exportei via DATA PUMP, dados de um tablespace que contém tabelas com colunas tipo DATA.
      Ao importar em outro banco de dados, as mesmas foram criadas como tipo STRING.

      Verifiquei que existe o parâmetro REMAP_DATA, mas pela documentação diz que deve ser especificado o nome da tabela e da coluna.

      Como tenho centenas de tabelas de um ERP se torna inviável ter que especificar cada tabela e coluna, então gostaria de saber se conhecem alguma alterativa que determine que todos os campos data sejam criados como tal.

      Obrigado

      #108364
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Sorry por duvidar, mas o que vc descreve (ie, o datapump ** por si só ** alterar o datatype de uma coluna) simplesmente NÂO EXISTE num datapump default sendo importado num banbco sem customizações : com certeza ** OU ** alguém já tinha criado antes do export a tabela lá no banco-destino com o datatype string, ** OU ** usaram alguma opção de REMAP nesse export, ** OU ** tem alguma trigger de DDL nesse banco-destino Alterando o CREATE TABLE que o datapump faz…
        Pra vc comprovar, faça um export aí num dos schemas de exemplo do RDBMS Oracle (ou nalgum schema pequeno que vc tenha aí na origem e ** não tenha criado *** ainda no destino SEM informar nenhum tipo de remap , veja o conteúdo desse dump file com a opção SQLFILE do impdp (E comprove que o CREATE TABLE ** vai ser sim ** Igualzinho ao que estava na origem), importe o dump file no banco-destino aonde os objetos exportados ** não existam ** ** E ** não haja nenhum trigger de DDL/customização particular que vc Comprovará o que digo…

        []s

        Chiappa

        #108366
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Opa – só pra não ficar no blablablá, eis um exemplo ** pequeno ** mas real de que o datapump por si só ** não ** muda datatype nem (muito menos) estruturas e propriedades de objetos exportados :

          ==> tenho um schema pequeno de teste, com duas tabelas, uma das quais possuindo coluna DATE :
          XE:SQL> desc usertest.dept;
          Name Null? Type


          DEPTNO NOT NULL NUMBER(2)
          DNAME VARCHAR2(14)
          LOC VARCHAR2(13)

          XE:SQL> desc usertest.emp
          Name Null? Type


          EMPNO NOT NULL NUMBER(4)
          ENAME VARCHAR2(10)
          JOB VARCHAR2(9)
          MGR NUMBER(4)
          HIREDATE DATE
          SAL NUMBER(7,2)
          COMM NUMBER(7,2)
          DEPTNO NUMBER(2)

          SQL> exit

          ==> faço o export via datapump normal, ** SEM ** nenhum tipo de remapeamento nem nada não-default :

          E:apporacleadminXEdpdump>expdp system/oracle schemas=USERTEST directory=DATA_PUMP_DIR dumpfile=usertest.dmp logfile=usertest.exp

          Export: Release…….

          ….

          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
          . . exported “USERTEST”.”DEPT” 5.898 KB 2 rows
          . . exported “USERTEST”.”EMP” 8.085 KB 2 rows
          Master table “SYSTEM”.”SYS_EXPORT_SCHEMA_01″ successfully loaded/unloaded


          Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
          E:APPORACLEADMINXEDPDUMPUSERTEST.DMP
          Job “SYSTEM”.”SYS_EXPORT_SCHEMA_01″ successfully completed

          ==> transfiro o dumpfile pro local do banco-destino, e antes de importar vou EXIBIR O CONTEÚDO do dumpfile, para demonstrar que NADA foi alterado :

          e:apporacleproduct12.1.0dbhome_12cdatapump_dir>impdp system/oracle directory=datapump_dir dumpfile=USERTEST.DMP sqlfile=USERTEST.SQL logfile=USERTEST.imp

          Import: Release 12.1.0.2.0 – Production….

          …..

          Processing object type SCHEMA_EXPORT/TABLE/TABLE
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
          Job “SYSTEM”.”SYS_SQL_FILE_FULL_01″ successfully completed

          ==> Olha só o conteúdo, o CREATE tá ESPECIFICANDO DATE na coluna criada com datatype DATE :

          e:apporacleproduct12.1.0dbhome_12cdatapump_dir>type USERTEST.SQL
          — CONNECT SYSTEM

          — new object type path: SCHEMA_EXPORT/USER
          CREATE USER “USERTEST” IDENTIFIED BY VALUES ‘S:87165BFE5D5B83D631FBB00D44AFBA37E86FD9DF82AAD0DDC4C8BBB5A3DE;4AC478BD86DC5767’
          TEMPORARY TABLESPACE “TEMP”;
          — new object type path: SCHEMA_EXPORT/SYSTEM_GRANT
          ….
          — new object type path: SCHEMA_EXPORT/TABLE/TABLE
          — CONNECT SYSTEM
          CREATE TABLE “USERTEST”.”DEPT”
          ( “DEPTNO” NUMBER(2,0),
          “DNAME” VARCHAR2(14 BYTE),
          “LOC” VARCHAR2(13 BYTE)
          ) SEGMENT CREATION IMMEDIATE
          PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
          NOCOMPRESS LOGGING
          STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
          PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
          BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
          TABLESPACE “SYSTEM” ;
          CREATE TABLE “USERTEST”.”EMP”
          ( “EMPNO” NUMBER(4,0),
          “ENAME” VARCHAR2(10 BYTE),
          “JOB” VARCHAR2(9 BYTE),
          “MGR” NUMBER(4,0),
          “HIREDATE” DATE,
          “SAL” NUMBER(7,2),
          “COMM” NUMBER(7,2),
          “DEPTNO” NUMBER(2,0)
          ) SEGMENT CREATION IMMEDIATE
          PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
          NOCOMPRESS LOGGING
          STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
          PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
          BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
          TABLESPACE “SYSTEM” ;
          — new object type path: SCHEMA_EXPORT/TABLE/INDEX/INDEX
          — CONNECT USERTEST
          BEGIN
          NULL;
          END;
          /
          ….

          ==> OK, agora vou fazer o import de verdade pra dentro do banco. SEM INDICAR nenhum tipo de remap, banco esse que NÂO TEM nenhuma trigger de DDL, que NÂO TEM nem o schema nem os objetos anteriormente criados (e que assim VÂO SER CRIADOS como estavam na origem), e SEM indicar nenhum tipo de remap ou não-defaults :

          e:apporacleproduct12.1.0dbhome_12cdatapump_dir>impdp system/oracle@pdborcl directory=datapump_dir dumpfile=USERTEST.DMP logfile=USERTEST.log

          Import: Release 12.1.0.2.0 – Production…

          Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
          . . imported “USERTEST”.”DEPT” 5.898 KB 2 rows
          . . imported “USERTEST”.”EMP” 8.085 KB 2 rows
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
          Job “SYSTEM”.”SYS_IMPORT_FULL_01″ successfully completed

          ==> O resultado :

          e:apporacleproduct12.1.0dbhome_12cdatapump_dir>sqlplus system/oracle@pdborcl

          PDBORCL:SQL> desc usertest.dept;
          Name Null? Type


          DEPTNO NOT NULL NUMBER(2)
          DNAME VARCHAR2(14)
          LOC VARCHAR2(13)

          PDBORCL:SQL> desc usertest.emp;
          Name Null? Type


          EMPNO NOT NULL NUMBER(4)
          ENAME VARCHAR2(10)
          JOB VARCHAR2(9)
          MGR NUMBER(4)
          HIREDATE DATE
          SAL NUMBER(7,2)
          COMM NUMBER(7,2)
          DEPTNO NUMBER(2)

          PDBORCL:SQL>

          =====>> OU SEJA, se alguém te falou que o datapump por si só faz essas coisas, a pessoa falou Asneiras, okdoc ?? Trate de checar aí com quem fez o export e o import quais parâmetros usou/que besteira fez, confira se o schema-destino já não estava criado com datatype errado, consulte views e triggers que possam estar interferindo, é isso aí pra vc descobrir QUEM é o culpado…. Descoberto QUEM fez O QUE, aí fica mais fácil resolver…

          []s

          Chiappa

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress