Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #99161
    Anônimo

      Pessoal,
      Tenho uma view em uma base de dados e estou criando uma tabela para receber algumas informações dessa view. Gostaria de saber uma melhor solução para criar uma rotina de carga nessa tabela, sendo que ambas bases são Oracle e não posso criar um dblink.

      Abração galera.

      #99163
      felipeg
      Participante

        Olá, boa tarde

        Amigo, dê uma verficada na parte de EXTERNAL TABLES.
        Segue o doc da Oracle sobre o mesmo.

        http://download.oracle.com/docs/cd/B193 … m#i1009127

        OBS: Qual o problema para usar dblink?

        Atenciosamente,
        Felipe.

        #99169
        rman
        Participante

          Pode ser utilizado o SQL Loader para isso.

          Você consegue gerar um arquivo texto das informações a serem exportadas ? Ai depois é só importar pelo SQL Loader.

          Outra solução seria simplismente:

          CREATE TABLE tabela AS SELECT * FROM visao;

          Depois fazer um EXP só desta tabela na base origem e um IMP na base destino.

          #99172
          felipeg
          Participante

            Rman

            Concordo que estas são opções válidas, porém

            1 – Eu, particularmente, acho External tables mais fácil do que SQL Loader

            Segue uma discussão no askTom sobre isso:
            http://asktom.oracle.com/pls/asktom/f?p … 1962171229

            2 – No caso de export import nunca testei o tempo de transferência importação em relação ao External ou o SQL Loader, então deixo essa pros amigos do fórum.

            Atenciosamente,
            Felipe.

            #99175
            Peterson
            Participante

              Não entendi. Você tem uma view e vai alimentar uma tabela a partir da view? Por que não substituir essa view por uma materialized view?

              #99176
              rman
              Participante

                [quote=”Peterson”:1iimzuhl]Não entendi. Você tem uma view e vai alimentar uma tabela a partir da view? Por que não substituir essa view por uma materialized view?[/quote]

                Ele não foi claro no objetivo desta tarefa, mas creio que será feito apenas 1 vez, só para migrar os dados de uma base para outra…

                #99180
                Peterson
                Participante

                  bom, nesse caso um dblink resolveria.

                  #99182
                  felipeg
                  Participante

                    [quote=”Peterson”:d54aeqsl]bom, nesse caso um dblink resolveria.[/quote]

                    É, mas ele citou na abertura do post que deveria ser sem dblink…

                    Eu perguntei na primeira resposta qual o motivo de não usar, mas como ainda não tivemos resposta não sabemos.

                    Atenciosamente,
                    Felipe.

                    #99183
                    Peterson
                    Participante

                      Putz, tb não entendi pq não usar um dblink

                      #99195
                      Anônimo

                        Desculpe senhores pela demora na minha resposta.
                        Acho que não fui muito claro.

                        Então,
                        a questão de não utilizar o DBLINK é por uma análise de impacto e tudo mais que não participei mas estou tentando saber o porque.

                             Na verdade, estava buscando um processo que fizesse uma carga de tempos em tempos( periodicidade a ser definida) de uma view( Base A ) para uma tabela ( Base B). Como precisava de uma solução rápida optei por utilizar o SQL*Loader , gerando um arquivo e carregando pelo loader.
                        
                              Não sei muito bem como funciona a External table e nem se seria melhor , mas vou procurar saber mais sobre.
                        

                        Obrigado a todos.

                        #99197
                        felipeg
                        Participante

                          [quote=”janrkrejci”:autib9sh]Desculpe senhores pela demora na minha resposta.
                          Acho que não fui muito claro.

                          Então,
                          a questão de não utilizar o DBLINK é por uma análise de impacto e tudo mais que não participei mas estou tentando saber o porque.

                               Na verdade, estava buscando um processo que fizesse uma carga de tempos em tempos( periodicidade a ser definida) de uma view( Base A ) para uma tabela ( Base B). Como precisava de uma solução rápida optei por utilizar o SQL*Loader , gerando um arquivo e carregando pelo loader.
                          
                                Não sei muito bem como funciona a External table e nem se seria melhor , mas vou procurar saber mais sobre.
                          

                          Obrigado a todos.[/quote]

                          Sem problemas!

                          Considerando a possibilidade de usar dblinks, para este caso é a melhor opção.
                          Caso precise de alguma ajuda para reverter essa análise, é só nos avisar aqui no fórum que damos um jeito (risos).

                          Atenciosamente,
                          Felipe.

                          #99198
                          Anônimo

                            Obrigado felipe mais uma vez!!!

                            Abs.

                            [quote=”felipeg”:2gkrf0dk][quote=”janrkrejci”:2gkrf0dk]Desculpe senhores pela demora na minha resposta.
                            Acho que não fui muito claro.

                            Então,
                            a questão de não utilizar o DBLINK é por uma análise de impacto e tudo mais que não participei mas estou tentando saber o porque.

                                 Na verdade, estava buscando um processo que fizesse uma carga de tempos em tempos( periodicidade a ser definida) de uma view( Base A ) para uma tabela ( Base B). Como precisava de uma solução rápida optei por utilizar o SQL*Loader , gerando um arquivo e carregando pelo loader.
                            
                                  Não sei muito bem como funciona a External table e nem se seria melhor , mas vou procurar saber mais sobre.
                            

                            Obrigado a todos.[/quote]

                            Sem problemas!

                            Considerando a possibilidade de usar dblinks, para este caso é a melhor opção.
                            Caso precise de alguma ajuda para reverter essa análise, é só nos avisar aqui no fórum que damos um jeito (risos).

                            Atenciosamente,
                            Felipe.[/quote]

                            #99208
                            Peterson
                            Participante

                              Como não pode usar dblinks, o jeito que configurou parece ser o melhor. Gerando um arquivo externo via Loader em uma área de disco comum aos dois servidores e lendo a partir desse arquivo na outra instância…

                              #99278
                              rman
                              Participante

                                [quote=”felipeg”:2w0z7xp2]Rman

                                Concordo que estas são opções válidas, porém

                                1 – Eu, particularmente, acho External tables mais fácil do que SQL Loader

                                Segue uma discussão no askTom sobre isso:
                                http://asktom.oracle.com/pls/asktom/f?p … 1962171229

                                2 – No caso de export import nunca testei o tempo de transferência importação em relação ao External ou o SQL Loader, então deixo essa pros amigos do fórum.

                                Atenciosamente,
                                Felipe.[/quote]


                                ops$tkyte@ORA920.US.ORACLE.COM> create or replace directory data_dir as '/tmp/'
                                2 /
                                Directory created.

                                ops$tkyte@ORA920.US.ORACLE.COM> create table external_table
                                2 (EMPNO NUMBER(4) ,
                                3 ENAME VARCHAR2(10),
                                4 JOB VARCHAR2(9),
                                5 MGR NUMBER(4),
                                6 HIREDATE DATE,
                                7 SAL NUMBER(7, 2),
                                8 COMM NUMBER(7, 2),
                                9 DEPTNO NUMBER(2)
                                10 )
                                11 ORGANIZATION EXTERNAL
                                12 ( type oracle_loader
                                13 default directory data_dir
                                14 access parameters
                                15 ( fields terminated by ',' )
                                16 location ('emp.dat')
                                17 )
                                18 /
                                Table created.

                                ops$tkyte@ORA920.US.ORACLE.COM> create or replace view emp_view
                                2 as
                                3 select * from scott.emp, all_objects;
                                View created.

                                ops$tkyte@ORA920.US.ORACLE.COM> host flat / emp_view > /tmp/emp.dat

                                see
                                http://asktom.oracle.com/~tkyte/flat/index.html
                                for 'flat'

                                Fiquei curioso que comando flat é esse ?

                                Quando se usa host logado no oracle seria pra acessar um comando do SO, provavelmente é linux…

                                Tenti o comando flat no Ubuntu 10.10 e no CentOS 5.6, e não existe esse comando, pena que o link que o Tom passa está quebrado…

                                Tem idéia o que o comando flat faz ??? Que pacote tem que instalar ???

                                #99282
                                felipeg
                                Participante

                                  [quote=”rman”:whwa1a72][quote=”felipeg”:whwa1a72]Rman

                                  Concordo que estas são opções válidas, porém

                                  1 – Eu, particularmente, acho External tables mais fácil do que SQL Loader

                                  Segue uma discussão no askTom sobre isso:
                                  http://asktom.oracle.com/pls/asktom/f?p … 1962171229

                                  2 – No caso de export import nunca testei o tempo de transferência importação em relação ao External ou o SQL Loader, então deixo essa pros amigos do fórum.

                                  Atenciosamente,
                                  Felipe.[/quote]


                                  ops$tkyte@ORA920.US.ORACLE.COM> create or replace directory data_dir as '/tmp/'
                                  2 /
                                  Directory created.

                                  ops$tkyte@ORA920.US.ORACLE.COM> create table external_table
                                  2 (EMPNO NUMBER(4) ,
                                  3 ENAME VARCHAR2(10),
                                  4 JOB VARCHAR2(9),
                                  5 MGR NUMBER(4),
                                  6 HIREDATE DATE,
                                  7 SAL NUMBER(7, 2),
                                  8 COMM NUMBER(7, 2),
                                  9 DEPTNO NUMBER(2)
                                  10 )
                                  11 ORGANIZATION EXTERNAL
                                  12 ( type oracle_loader
                                  13 default directory data_dir
                                  14 access parameters
                                  15 ( fields terminated by ',' )
                                  16 location ('emp.dat')
                                  17 )
                                  18 /
                                  Table created.

                                  ops$tkyte@ORA920.US.ORACLE.COM> create or replace view emp_view
                                  2 as
                                  3 select * from scott.emp, all_objects;
                                  View created.

                                  ops$tkyte@ORA920.US.ORACLE.COM> host flat / emp_view > /tmp/emp.dat

                                  see
                                  http://asktom.oracle.com/~tkyte/flat/index.html
                                  for 'flat'

                                  Fiquei curioso que comando flat é esse ?

                                  Quando se usa host logado no oracle seria pra acessar um comando do SO, provavelmente é linux…

                                  Tenti o comando flat no Ubuntu 10.10 e no CentOS 5.6, e não existe esse comando, pena que o link que o Tom passa está quebrado…

                                  Tem idéia o que o comando flat faz ??? Que pacote tem que instalar ???[/quote]

                                  Rman

                                  Flat são tipos de arquivos onde existem coleções e armazenamento de dados que podem ser acessados sequencialmente.
                                  Um arquivo csv (excel) é um exemplo de arquivo flat, o /etc/group também.

                                  Eu particularmente nunca usei mas já li sobre o mesmo no livro Expert Oracle Database Architecture 9i, 10g and 11, do Tom Kyte, recomendo.

                                  Atenciosamente,
                                  Felipe.

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