Zum Inhalt springen

it-ecki

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von it-ecki

  1. it-ecki

    SQL Problem

    Hallo ich habe es soweit hinbekommen, dass bei einem Eintrag (Spalten: Subject und Item_id) der genauso in der Import Tabelle vorhanden ist, der Eintrag aus der subject_item Tabelle gelöscht wird. sobald nur ein Eintrag also nur eine Spalte bereits vorhanden ist soll er einen Fehler ausspucken und sagen wo der Fehler liegt und sobald noch kein Eintrag vorhanden ist sollen die Werte in die Tabelle subject_item gespeichert werden. jetzt habe ich zum einen das Problem, dass ich die Output Lines nicht auf dem Bildschirm haben möchte, sondern in eine Logdatei geschriebenw erden soll, doch wie kann ich das realisieren? Mit Spool funktioniert es irgendwie nicht so richtig. Des weiteren habe ich noch das Problem, dass ich einen Import von einer CSV Datei in die Temp (Import) Tabelle haben möchte. also zwei Werte in die Tabelle eintragen aus einer csv Datei mit Semikolon getrennt. wie kann ich das umsetzen? hier mein bisheriges Script set serveroutput on size unlimited; --spool 'D:\protokoll.log' declare cursor delete_cursor is select sa.sap_map_temp.subject, sa.sap_map_temp.item_id from sa.sap_map_temp inner join sa.sap_map_subject_item on (sa.sap_map_temp.item_id = sa.sap_map_subject_item.item_id and sa.sap_map_temp.subject = sa.sap_map_subject_item.subject); cursor import_cursor is select sa.sap_map_temp.subject, sa.sap_map_temp.item_id from sa.sap_map_temp where ( sa.sap_map_temp.item_id not in (select item_id from sa.sap_map_subject_item) and sa.sap_map_temp.subject not in (select subject from sa.sap_map_subject_item) ); -- doppelte Subject Einträge cursor fehler_cursor_subject is select sa.sap_map_temp.subject, sa.sap_map_temp.item_id from sa.sap_map_temp where ( sa.sap_map_temp.subject in (select subject from sa.sap_map_subject_item) and sa.sap_map_temp.item_id not in (select item_id from sa.sap_map_subject_item) ); -- doppelte Item_ID Einträge cursor fehler_cursor_item is select sa.sap_map_temp.subject, sa.sap_map_temp.item_id from sa.sap_map_temp where ( sa.sap_map_temp.item_id in (select item_id from sa.sap_map_subject_item) and sa.sap_map_temp.subject not in (select subject from sa.sap_map_subject_item) ); rec_imp import_cursor%ROWTYPE; feh_imp_item fehler_cursor_item%ROWTYPE; feh_imp_subject fehler_cursor_subject%ROWTYPE; del_imp delete_cursor%ROWTYPE; begin dbms_output.put_line('Protokoll vom: '||TO_CHAR(sysdate,'DD.MM.YYYY hh:mi:ss PM')); open delete_cursor; loop fetch delete_cursor into del_imp; exit when delete_cursor%NOTFOUND; delete from sa.sap_map_subject_item where item_id =del_imp.item_id; delete from sa.sap_map_temp where item_id=del_imp.item_id; --löscht den Eintrag, nachdem es in das Protokoll geschrieben wurde dbms_output.put_line('deleted: '||del_imp.subject|| ' --- ' || del_imp.item_id ); end loop; close delete_cursor; open fehler_cursor_subject; loop fetch fehler_cursor_subject into feh_imp_subject; exit when fehler_cursor_subject%NOTFOUND; --wird beendet sobald bei letzter Zeile angekommen delete from sa.sap_map_temp where item_id=feh_imp_subject.item_id; --löscht den Eintrag, nachdem es in das Protokoll geschrieben wurde dbms_output.put_line('ERROR Subject: '||feh_imp_subject.subject|| ' --- ' || feh_imp_subject.item_id||' manuelle Kontrolle notig'); end loop; close fehler_cursor_subject; open fehler_cursor_item; loop fetch fehler_cursor_item into feh_imp_item; exit when fehler_cursor_item%NOTFOUND; --wird beendet sobald bei letzter Zeile angekommen delete from sa.sap_map_temp where item_id=feh_imp_item.item_id; --löscht den Eintrag, nachdem es in das Protokoll geschrieben wurde dbms_output.put_line('ERROR Item : '||feh_imp_item.subject|| ' --- ' || feh_imp_item.item_id||' manuelle Kontrolle notig'); end loop; close fehler_cursor_item; open import_cursor; loop fetch import_cursor into rec_imp; exit when import_cursor%NOTFOUND; --wird beendet sobald bei letzter Zeile angekommen insert into sa.sap_map_subject_item (item_id, subject) values (rec_imp.item_id, rec_imp.subject); delete from sa.sap_map_temp where item_id = rec_imp.item_id; --löscht den Eintrag, nachdem es in das Protokoll geschrieben wurde dbms_output.put_line('Inserted: '||rec_imp.subject|| ' --- ' || rec_imp.item_id); end loop; close import_cursor; end; / --spool off; set serveroutput off;
  2. it-ecki

    SQL Problem

    wie kann ich einen Import bspw. aus einer CSV Datei in eine Tabelle durchführen? bislang war das hier die Überlegung: insert into sap_techem_map_subject_item select subject, item_id from sap_techem_tmp where subject not in (select subject from sap_techem_map_subject_item) wie kann man ein Protokoll erstellen lassen?
  3. it-ecki

    SQL Problem

    wie würde das vom prinzip aussehen?
  4. it-ecki

    SQL Problem

    es wird oracle verwendet ich hatte an pl sql oder so etwas gedacht? was ist stored proc?
  5. it-ecki

    SQL Problem

    Hallo ich habe folgendes Problem: ich habe zwei Tabellen sap_subject_item und import ich möchte nun aus der tabelle import die Werte in die Tabelle sap_subject_item hinzufügen aber nur wenn keine der einzufügenden Zahlen bislang in der Tabelle sap_subject_item vorkommt bedeutet also ich brauche ein Prüf-Mechanismus ob der Eintrag T999 in sap_subject_item.subject vorkommt, wenn nicht dann muss ich das gleiche mit der item_id übeprüfen. Sobald auch nur einer der beiden Werte vorkommt soll eine Fehlermeldung in eine Protokolldatei geschrieben werden. ich bin leider noch neueinsteiger in Sachen SQL und benötige dringend Hilfe Liebe Grüße und Vielen Dank im Voraus it-ecki Tabname: subject_item subject item_id t000 2 t111 5 t222 8 t333 12 t444 20 Tabname: import subject item_id t999 15 t111 23 t444 20 Nach dem hinzufügen sollte die Tabelle also so aussehen: Tabname: sap_subject_item subject item_id t000 2 t111 5 t222 8 t333 12 t444 20 t999 15 Protokoll: T111 23 mindestens einer der Werte ist bereits vorhanden T444 20 mindestens einer der Werte ist bereits vorhanden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...