Generator für INSERT SQL » dynamisch & automatisch » Syntax kurz erklärt

Generator für INSERT » Aus DATA DICTIONARY Abfrage dynamisch & automatisch das gewünschte – ORACLE SQL DML – INSERT Dantenbank Statement generieren.



CTPM » Business • Health • Travel • Move - Stefan Müller CTPM » Business • Health • Travel • Move - XING CV - Stefan Müller

Autor: Stefan Müller CEO & Senior Consultant

CTPM » Business • Health • Travel • Move

Köln • Berlin • Hamburg • Lindlar im Bergischen Land



1. Generator für INSERT



1.1 PL/SQL Block

declare

v_oldtab varchar2(30) := null;

v_template clob := 'insert into <#2> (<#1>) (select <#3> from source_<#4>)';

v_sql clob := v_template;

v_col clob;

begin

-- TABLE-LIST - DATA DICTIONARY - 'COL'

for rec in (select tname, cname

from col

where 1=1

and colno not in (1) -- FIRST COL ELEIMINATE

and tname

in ('USER_TAB1'

,'USER_TAB2'

order by tname, colno)

loop

if v_oldtab is null or rec.tname <> v_oldtab then

-- CREATE INSERT DML

if rec.tname <> v_oldtab then

v_sql := replace(v_sql,'<#1>',v_col);

v_sql := replace(v_sql,'<#3>',v_col);

dbms_output.put_line(v_sql);

end if;

v_sql := v_template;

v_sql := replace(v_sql,'<#2>',rec.tname);

v_sql := replace(v_sql,'<#4>',rec.tname);

v_oldtab := rec.tname;

v_col := rec.cname;

else

-- CREATE COL-LIST

v_col := v_col||' ,'||rec.cname;

end if;

end loop;

end;

SAMPLE

insert into USER_TAB1 (ID ,FIELD1,FIELD2) (select ID ,FIELD1,FIELD2 from source_USER_TAB1)


 

 ctpm.events 📅 
 Anzeige 

Oracle und PL/SQL sind eingetragene Warenzeichen der Oracle Corporation.


Datenbank & Internet

IT-Seminare, Kurse, Workshops oder Stammtisch


Ihre Fragen und Anmerkungen sind jederzeit willkommen.

(Link)

Schreibe einen Kommentar

%d Bloggern gefällt das: