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 / dba / Perguntas / 333928
Accepted
Raakh
Raakh
Asked: 2023-12-11 18:04:23 +0800 CST2023-12-11 18:04:23 +0800 CST 2023-12-11 18:04:23 +0800 CST

inserindo dados de outra tabela

  • 772

criar usuário TESTING identificado por “Teste”;

grant connect, resource to TESTING;
grant dba to TESTING; 

connect TESTING/Test;

set define off;


create table airport_final
(
iata_code varchar2(3),
city_code varchar2(3),
city_name nvarchar2(24),
country_code varchar2(2),
country_name nvarchar2(33),
no_of_airports number(1),
airport_code varchar2(3),
city_with_country nvarchar2(61),
airport_name nvarchar2(80)
);

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('YVE','YVE', 'Vernon', 'CA', 'Canada');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('ZZW','ZZW', 'Day Trip Mystery', 'PG', 'Australia');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('VRA','VRA', 'Varadero', 'CU', 'Cuba');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('VRO','VRA', 'Varadero', 'CU', 'Cuba');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('BOL','BOL', 'Ballykelly', 'PG', 'United Kingdom');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('BMV','BMV', 'Buon Ma Thuot', 'PG', 'Vietnam');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('WBI','WBU', 'Boulder', 'US', 'United States');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('WBU','WBU', 'Boulder', 'US', 'United States');

INSERT INTO airport_final(iata_code, city_code, city_name, country_code, country_name) 
VALUES ('WHH','WBU', 'Boulder', 'US', 'United States');

commit;

select iata_code, city_code, city_name, country_code, country_name from airport_final where city_code='VRA';

create table city(
city_code varchar2(3),
country_code varchar2(3),
city varchar2(24)
);

Eu inseri dados do arquivo CSV na tabela Oracle airport_finale desejo inserir colunas específicas na tabela city usando esta instrução

SQL> insert
  into city(city_code, country_code,city)
  with t as (
             select  distinct c.country_code,
                              a.city_name,
                              a.city_code
               from  airport_final a,
                     city c
               where c.city_code = a.city_code
            )
  select  
          city_code,
          country_code,
          city_name
    from  t
/
  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16  
0 rows created.

Esta declaração não está inserindo dados Por favor, informe como posso inserir dados de colunas específicas de outra tabela

Atenciosamente

oracle
  • 2 2 respostas
  • 27 Views

2 respostas

  • Voted
  1. Phill W.
    2023-12-11T20:03:08+08:002023-12-11T20:03:08+08:00

    O que há de errado com [o antiquado]:

    insert into city( city_code, country_code, city )
    select [distinct] 
      a.city_code
    , c.country_code
    , a.city_name
    from  airport_final a
    inner join city c
       on a.city_code = c.city_code
    
    • 0
  2. Best Answer
    Littlefoot
    2023-12-13T15:47:50+08:002023-12-13T15:47:50+08:00

    Sua consulta de inserção usa junção entre essas duas tabelas, o que sugere que já podem existir algumas linhas na citytabela de destino. Se for assim, que tal outra abordagem merge?

    Se já existirem algumas linhas, execute a atualização; caso contrário, execute insert:

    SQL> merge into city a
      2    using (select distinct f.city_code, f.country_code, f.city_name
      3           from airport_final f
      4          ) b
      5    on (a.city_code = b.city_code)
      6  when matched then update set
      7    a.country_code = b.country_code,
      8    a.city = b.city_name
      9  when not matched then insert
     10    (city_code, country_code, city) values
     11    (b.city_code, b.country_code, b.city_name);
    
    6 rows merged.
    
    SQL> select * from city;
    
    CITY_CODE  COUNTRY_CODE    CITY
    ---------- --------------- ------------------------
    ZZW        PG              Day Trip Mystery
    VRA        CU              Varadero
    YVE        CA              Vernon
    WBU        US              Boulder
    BMV        PG              Buon Ma Thuot
    BOL        PG              Ballykelly
    
    6 rows selected.
    
    SQL>
    
    • 0

relate perguntas

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • ORDER BY usando prioridades personalizadas para colunas de texto

  • Interface sqlplus confortável? [fechado]

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

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