AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-280409

to-find's questions

Martin Hope
to-find
Asked: 2023-10-10 12:25:29 +0800 CST

Procurando uma abordagem de design melhor ao migrar para Oracle do SQL Server com muitos bancos de dados

  • 5

Estamos em processo de migração do Microsoft SQL Server para Oracle. No SQL Server temos 60 bancos de dados (como XMLDB_1, XMLDB_2, XMLDB_3, ......, XMLDB_60) para inserir dados após ler 60 arquivos XML ao mesmo tempo. O SSIS lerá 60 arquivos XML por vez e inserirá dados nesses 60 bancos de dados. Cada um dos 60 bancos de dados contém 10 tabelas com a mesma estrutura. Da próxima vez, o SSIS lerá os próximos 60 arquivos XML e inserirá dados nos mesmos 60 bancos de dados. Cada vez antes de escolher os arquivos XML, todas as tabelas dentro de cada banco de dados (XMLDB) serão truncadas após enviar os dados para outro banco de dados (por exemplo, DocumentDB).

O que eu entendo é isso ou o que ouvi de outras pessoas - ter muitos serviços de banco de dados dentro de uma única instância de banco de dados Oracle pode criar problemas de desempenho devido à maior utilização de recursos. Por outro lado, no SQL Server, ter muitos bancos de dados não é grande coisa.

Estou procurando uma abordagem de design melhor aqui,

  1. Precisamos prosseguir criando 60 serviços de banco de dados XML (XMLDB_1,XMLDB_2,XMLDB_3,......,XMLDB_60) em uma única instância de banco de dados Oracle? Ou,
  2. Precisamos criar quantas tabelas forem necessárias para processar 60 arquivos XML por vez, mas em um único serviço de banco de dados. Neste caso precisaríamos criar 600 tabelas (10 tabelas dentro de cada XMLDB e temos 60 XMLDBs, portanto 60x10 = 600) em um único serviço de banco de dados.
sql-server
  • 1 respostas
  • 61 Views
Martin Hope
to-find
Asked: 2023-10-09 18:40:27 +0800 CST

No Oracle, quero inserir dados em uma tabela em um serviço de banco de dados de outro serviço de banco de dados sem um link de banco de dados. Ambos os serviços de banco de dados na mesma instância de banco de dados

  • 4

No Oracle, quero inserir dados em uma tabela em um serviço de banco de dados de outro serviço de banco de dados sem usar o link do banco de dados. Ambos os serviços de banco de dados estão na mesma instância de banco de dados.

insert into dm2m.iotCharge@BFDOCUMENTDATA(documentId, name, descr, quantity, balance_amount, total_amount) 
    select documentID, tariff, Description, quantity, amount, total_amount
    from dm2m.fn_getIotCharges_pkg.fn_getIotCharges(100);

Na dm2m.iotChargetabela de consulta acima está no BF_DocumentDataserviço de banco de dados. E o pacote dm2m.fn_getIotCharges_pkg.fn_getIotCharges(100)está no XMLDBserviço de banco de dados. Ambos os serviços de banco de dados estão na mesma instância de banco de dados. Temos um usuário nomeado dm2mem ambos os serviços de banco de dados.

a definição do pacote e do corpo do pacote é a seguinte,

create or replace PACKAGE dm2m.fn_getIotCharges_pkg
AS
   TYPE tt_fn_getIotCharges_type IS TABLE OF tt_fn_getIotCharges%ROWTYPE;
   FUNCTION fn_getIotCharges(v_documentID IN NUMBER) RETURN tt_fn_getIotCharges_type PIPELINED;
END;

create or replace PACKAGE BODY dm2m.fn_getIotCharges_pkg AS
    
      FUNCTION fn_getIotCharges(v_documentId IN NUMBER) RETURN tt_fn_getIotCharges_type PIPELINED
          AS
                v_temp   SYS_REFCURSOR;
                v_temp_1 tt_fn_getIotCharges%rowtype;
            BEGIN
              OPEN v_temp FOR
                SELECT v_documentId documentID, EVB.PROFILE_NAME AS Tariff,EVB.NAME AS Description,EVB.QUANTITY, EVB.AMOUNT, 
                    ET.AMOUNT AS TOTAL_AMOUNT FROM 
                    dm2m.AR_ITEMS_EVENTS_VFQ_BALANCE EVB
                    INNER JOIN 
                    dm2m.AR_ITEMS_EVENTS_TOTAL ET ON ET.EVENTS_ID = EVB.EVENTS_ID;

            LOOP
                FETCH v_temp INTO v_temp_1;
                EXIT WHEN v_temp%notfound;
                PIPE ROW ( v_temp_1 );
            END LOOP;

            RETURN;
      END fn_getIotCharges;

    END fn_getIotCharges_pkg;

A tabela (tt_fn_getIotCharges) possui as colunas abaixo, insira a descrição da imagem aqui

Quando executei a consulta de inserção acima, recebo o erro abaixo.

ORA-22804: operações remotas não permitidas em tabelas de objetos ou colunas de tipo definido pelo usuário

Eu tenho algumas perguntas aqui,

  1. Por que a consulta de inserção acima está gerando um erro aqui?
  2. Como posso conseguir isso sem usar o link do banco de dados?
  3. Usar o link do banco de dados causa algum problema de desempenho?
oracle
  • 1 respostas
  • 37 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve