Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

USERT ke dalam tabel dengan nama tabel dinamis

MERGE bekerja dengan baik dengan Native dynamic SQL (EXECUTE IMMEDIATE):

create table so_test(pk number not null primary key, value varchar2(20));

insert into so_test(pk, value) values(1, 'one');

declare
  l_SQL varchar2(4000);
  l_tablename varchar2(4000) default 'so_test';
begin
  l_SQL := 'merge into ' || l_tablename || ' target' ||
    ' using (select 1 pk, ''eins'' value from dual union all
             select 2 pk, ''zwei'' value from dual) source
      on (target.pk = source.pk)
      when matched then 
        update set target.value = source.value
      when not matched then
        insert values(source.pk, source.value)      
  ';
  dbms_output.put_line(l_sql);
  execute immediate l_SQL;
end; 

Bisakah Anda memposting pesan kesalahan yang Anda dapatkan saat menggunakan MERGE?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya harus menyimpan GUID di Oracle?

  2. Fungsi Oracle Analytic - mengatur ulang klausa windowing

  3. Oracle:bagaimana cara mendapatkan persen dari total dengan kueri?

  4. RPAD() Fungsi di Oracle

  5. Oracle-XMLTYPE :Cara memperbarui nilai