XML-Schnittstellen zum Import und Export von Daten für eine Oracle DB Ein Erfahrungsbericht DOAG 2006

Größe: px
Ab Seite anzeigen:

Download "XML-Schnittstellen zum Import und Export von Daten für eine Oracle DB Ein Erfahrungsbericht DOAG 2006"

Transkript

1 XML-Schnittstellen zum Import und Export von Daten für eine Oracle DB Ein Erfahrungsbericht DOAG 2006 Dr. Wolfgang Braunisch Opitz Consulting GmbH Seite 1

2 Gliederung Anforderungsszenario Lösungsalternativen Realisierte Lösung Technische Hürden, Lösungen und Workarounds Alternative Lösungen Fazit Fragen und Antworten Seite 2

3 Anforderungsszenario: Übersicht DB-Server SFTP SCP Filesystem xsd xml csv Import-Jobs ORACLE-DB xml csv Export-Jobs Seite 3

4 Anforderungsszenario: Schnittstellenformate Importdateien können sowohl im xml-format als auch im csv-format vorliegen Exportdateien müssen im xml-format und im csv-format erzeugt werden Verschiedene Typen von Import- und Exportdateien Unterscheidung nach Speicherort und Namenskonventionen Für xml-dateitypen sind externe Schemata definiert Bestimmte Dateien können recht groß werden (mehrere 100 MB) Seite 4

5 Anforderungsszenario : Schnittstellen xml-dokumente haben i. A. eine hierarchische Struktur: <dokument_knoten> <masterelement_knoten> <masterattribut>wert</masterattribut> <detailelement_knoten> <detailattribut>wert</detailattribut> </detailelement_knoten> <detailelement_knoten> </detailelement_knoten> </masterelement_knoten> <masterelement_knoten> </masterelement_knoten> <\dokument_knoten> Mastertabelle Detailtabelle Seite 5

6 Anforderungsszenario : Schnittstellen xml-dokumente haben i. A. eine hierarchische Struktur: <dokument_knoten> <masterelement_knoten> <masterattribut>wert</masterattribut> <detailelement_knoten> <detailattribut>wert</detailattribut> </detailelement_knoten> <detailelement_knoten> </detailelement_knoten> </masterelement_knoten> <masterelement_knoten> </masterelement_knoten> <\dokument_knoten> Mastertabelle Detailtabelle Seite 6

7 Anforderungsszenario : Schnittstellen xml-dokumente haben i. A. eine hierarchische Struktur: <dokument_knoten> <masterelement_knoten> <masterattribut>wert</masterattribut> <detailelement_knoten> <detailattribut>wert</detailattribut> </detailelement_knoten> <detailelement_knoten> </detailelement_knoten> </masterelement_knoten> <masterelement_knoten> </masterelement_knoten> <\dokument_knoten> Mastertabelle Detailtabelle Seite 7

8 Anforderungsszenario : Schnittstellen veranschaulicht am bekannten EMP-DEPT Beispiel: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> DEPT EMP Seite 8

9 csv-dokumente haben eine flache Struktur: Anforderungsszenario : Schnittstellen <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Deptno,, Empno, 10,, 7782, 10,, 7839, 10,, 7934, 20,, 7369, 20,, 7566, 20,, 7788, 20,, 7876, 20,, 7902, 30,, 7499, 30,, 7521, Seite 9

10 csv-dokumente haben eine flache Struktur: Anforderungsszenario : Schnittstellen <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Deptno,, Empno, 10,, 7782, 10,, 7839, 10,, 7934, 20,, 7369, 20,, 7566, 20,, 7788, 20,, 7876, 20,, 7902, 30,, 7499, 30,, 7521, Seite 10

11 csv-dokumente haben eine flache Struktur: Anforderungsszenario : Schnittstellen <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Deptno,, Empno, 10,, 7782, 10,, 7839, 10,, 7934, 20,, 7369, 20,, 7566, 20,, 7788, 20,, 7876, 20,, 7902, 30,, 7499, 30,, 7521, Seite 11

12 csv-dokumente haben eine flache Struktur: Anforderungsszenario : Schnittstellen <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Deptno,, Empno, 10,, 7782, 10,, 7839, 10,, 7934, 20,, 7369, 20,, 7566, 20,, 7788, 20,, 7876, 20,, 7902, 30,, 7499, 30,, 7521, Seite 12

13 Anforderungsszenario: Technische Daten zu Server - OS, DB, Java Datenbankserver OS: LINUX sles9 ORACLE-Datenbank: 10g R1 ( ) Java: Java 1.4 von SUN Seite 13

14 Gliederung Anforderungsszenario Lösungsalternativen Realisierte Lösung Technische Hürden, Lösungen und Workarounds Alternative Lösungen Fazit Fragen und Antworten Seite 14

15 Lösungsalternativen XDK XML-DB SQL PL/SQL Eigenentw. PL/SQL (utl_file) Java Seite 15

16 Lösungsalternativen: XML-DB XML-DB + Sehr mächtig + Speicherung der xml-dokumente in der DB (als xml-dokumente) + Registrierung externer Schemata in der DB + Umfangreiche Funktionalität - Speicherung von xml-dokumenten in der DB war nicht erforderlich - reine Schnittstellenfunktion neben csv Für unser Projekt eher etwas überdimensioniert Seite 16

17 Lösungsalternativen: XDK XDK + Eher an einfachen Entwicklungsansprüchen orientiert + Utilities für Import und Export von xml-dokumenten dbms_xmlstore für Import dbms_xmlquery für Export Für unser Projekt geeignet Seite 17

18 Eigenentwicklung mit UTL_FILE u. ä. Lösungsalternativen: Eigenentwicklung mit UTL_FILE + Verarbeitung zeilenweise möglich Zumindest für Export Grosse Dokumente sind nicht komplett im Hauptspeicher - Komplette xml-logik muss manuell entwickelt werden Keine Nutzung der xml-logik in entspr. Bibliotheken Gefahr unvorhergesehener Probleme Gefahr eines hohen Wartungsaufwandes Keine echte Alternative Seite 18

19 Lösungsalternativen: Java Java - Prozesssteuerung ist überwiegend PL/SQL + Verwendung von Java-Bibliotheken mit einschlägiger xml- Logik möglich Kann in PL/SQL eingebunden werden Kann direkt auf dem Betriebssystem aufgerufen werden DB-Zugriff aus Java heraus möglich Als Ergänzung zu PL/SQL-Funktionalität hilfreich Seite 19

20 Gliederung Anforderungsszenario Lösungsalternativen Realisierte Lösung Technische Hürden, Lösungen und Workarounds Alternative Lösungen Fazit Fragen und Antworten Seite 20

21 Realisierte Lösung: Import CSV-Dateien werden über External Tables importiert Type sql_loader Keine Zwischentabelle => Select direkt auf die Datei Zeilenweise Verarbeitung über Cursor-Loops in PL/SQL Auch MERGE und Minus-Selects möglich XML-Dateien: Umwandlung in die entsprechenden csv-formate ist relativ einfach Seite 21

22 Realisierte Lösung : Übersicht Importdateien csv csv Stylesheet Transformation xml Validierung Importdateien ORACLE-DB External Tables External Tables Relationales Datenmodell ORACLE Scheduler dbms_xmlquery Exportdateien xml Stylesheet Transformation csv Exportdateien Seite 22

23 Realisierte Lösung : Jobsteuerung Prozesssteuerung Regelmäßiges Einpflegen der Importdateien in die Tabellen der ORACLE-DB Regelmäßige Erzeugung von Exportdateien aus Inhalten der Tabellen der ORACLE-DB Verwaltung der Im- und Export-Dateien von außen (scp, sftp, ssh-webserver) Steuerung aus der DB heraus Verwendung von dbms_scheduler Aufruf von PL/SQL-Programmen Java-API für Filesystemzugriffe und OS-Aufrufe (eingebettet in PL/SQL-Wrapper) Seite 23

24 Realisierte Lösung : Import Validierung gegen externe Schemata Validierung der Datei außerhalb der DB => Java XML-Schemata (*.xsd) liegen auf dem Filesystem Aufruf aus PL/SQL heraus (Wrapper) Stylesheet-Transformationen Umwandlung xml - csv vor Import in die DB => Java Stylesheets (*.xsl) liegen auf dem Filesystem Aufruf aus PL/SQL heraus (Wrapper) Seite 24

25 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 25

26 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 26

27 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 27

28 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 28

29 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 29

30 Schematischer Aufbau der xml-stylesheets: <Departments-Employees> <Dept> <DeptNo>10</DeptNo> <Emp> <EmpNo>7782</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> Realisierte Lösung : Import <xsl:stylesheet version="1.0 xmlns:xsl=" <xsl:output method="text"/> <xsl:template match= Departments-Employees"> <xsl:text> DeptNo,,EmpNo,,</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select= Dept/Emp"> <xsl:text>""" </xsl:text> <xsl:value-of select="../deptno"/> <xsl:text>""","""</xsl:text> <xsl:value-of select= EmpNo"/> <xsl:text>""" </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> DeptNo,, EmpNo, 10,, 7782, 10,, 7839, Seite 30

31 Realisierte Lösung : Import Performance-Probleme bei Stylesheet-Transformationen Validierung gegen externe Schemata Validerung und Transformation erfolgen aus PL/SQL heraus Mit Hilfe von Java-Utilities Erster Ansatz Erstellung von Java-Programmen für Validierung und Transformation Laden dieser Programme in die DB und erstellen von PL/SQL- Wrappern In den DB-Jobs Aufruf der PL/SQL-Wrapper Seite 31

32 Performance-Probleme: Realisierte Lösung : Import Validierungen und Transformationen dauern mindestens einen Faktor 10 länger als der direkte Aufruf auf dem OS Änderungen an DB-Parametern wie java_pool_size halfen nicht Workaround: Indirekter Aufruf der Java-Programme DB OS PL/SQL- Programm In PL/SQL eingebundenes Java-Programm OS-Befehl (LINUX) Java- Programm begin pr_os_aufruf ('java_programm name_qellxml name_xsl name_zielxml'); end; Seite 32

33 XML-Dokumente erzeugen mit dbms_xmlquery Realisierte Lösung : Export declare v_query_ctx dbms_xmlquery.ctxtype; v_ergebnis_xml clob; begin -- XML-Dokument als CLOB erstellen v_query_ctx := dbms_xmlquery.newcontext ('select deptno, dname, from dept'); dbms_xmlquery.setrowsettag (v_query_ctx, 'Departments-Employees'); dbms_xmlquery.setencodingtag(v_query_ctx, 'iso '); -- v_ergebnis_xml := dbms_xmlquery.getxml(v_query_ctx); dbms_xmlquery.closecontext (v_query_ctx); -- end; CLOB mit UTL_FILE in eine Datei schreiben Seite 33

34 XML-Dokumente erzeugen mit dbms_xmlquery Realisierte Lösung : Export declare v_query_ctx dbms_xmlquery.ctxtype; v_ergebnis_xml clob; begin -- XML-Dokument als CLOB erstellen v_query_ctx := dbms_xmlquery.newcontext ('select deptno, dname, from dept'); dbms_xmlquery.setrowsettag (v_query_ctx, 'Departments-Employees'); dbms_xmlquery.setencodingtag(v_query_ctx, 'iso '); -- v_ergebnis_xml := dbms_xmlquery.getxml(v_query_ctx); dbms_xmlquery.closecontext (v_query_ctx); -- end; CLOB mit UTL_FILE in eine Datei schreiben Seite 34

35 XML-Dokumente erzeugen mit dbms_xmlquery Realisierte Lösung : Export declare v_query_ctx dbms_xmlquery.ctxtype; v_ergebnis_xml clob; begin -- XML-Dokument als CLOB erstellen v_query_ctx := dbms_xmlquery.newcontext ('select deptno, dname, from dept'); dbms_xmlquery.setrowsettag (v_query_ctx, 'Departments-Employees'); dbms_xmlquery.setencodingtag(v_query_ctx, 'iso '); -- v_ergebnis_xml := dbms_xmlquery.getxml(v_query_ctx); dbms_xmlquery.closecontext (v_query_ctx); -- end; CLOB mit UTL_FILE in eine Datei schreiben Seite 35

36 XML-Dokumente erzeugen mit dbms_xmlquery Realisierte Lösung : Export declare v_query_ctx dbms_xmlquery.ctxtype; v_ergebnis_xml clob; begin -- XML-Dokument als CLOB erstellen v_query_ctx := dbms_xmlquery.newcontext ('select deptno, dname, from dept'); dbms_xmlquery.setrowsettag (v_query_ctx, 'Departments-Employees'); dbms_xmlquery.setencodingtag(v_query_ctx, 'iso '); -- v_ergebnis_xml := dbms_xmlquery.getxml(v_query_ctx); dbms_xmlquery.closecontext (v_query_ctx); -- end; CLOB mit UTL_FILE in eine Datei schreiben Seite 36

37 XML-Dokumente erzeugen mit dbms_xmlquery Realisierte Lösung : Export declare v_query_ctx dbms_xmlquery.ctxtype; v_ergebnis_xml clob; begin -- XML-Dokument als CLOB erstellen v_query_ctx := dbms_xmlquery.newcontext ('select deptno, dname, from dept'); dbms_xmlquery.setrowsettag (v_query_ctx, 'Departments-Employees'); dbms_xmlquery.setencodingtag(v_query_ctx, 'iso '); -- v_ergebnis_xml := dbms_xmlquery.getxml(v_query_ctx); dbms_xmlquery.closecontext (v_query_ctx); -- end; CLOB mit UTL_FILE in eine Datei schreiben Seite 37

38 Realisierte Lösung : Hierarchische XML-Strukturen dbms_xmlquery greift nur auf eine Tabelle/View zu Einfache Join-View führt nicht zum gewünschten Ergebnis create view dept_emp_v as select dept.deptno, emp.empno, from dept, emp where emp.deptno = dept.deptno; / <Departments-Employees> <ROW num="1"> <DEPTNO>10</DEPTNO> <EMPNO>7782</EMPNO> </ROW> <ROW num="2"> <DEPTNO>10</DEPTNO> <EMPNO>7839</EMPNO> </ROW> </Departments-Employees> Seite 38

39 Realisierte Lösung : Hierarchische XML-Strukturen dbms_xmlquery greift nur auf eine Tabelle/View zu Einfache Join-View führt nicht zum gewünschten Ergebnis create view dept_emp_v as select dept.deptno, emp.empno, from dept, emp where emp.deptno = dept.deptno; / <Departments-Employees> <ROW num="1"> <DEPTNO>10</DEPTNO> <EMPNO>7782</EMPNO> </ROW> <ROW num="2"> <DEPTNO>10</DEPTNO> <EMPNO>7839</EMPNO> </ROW> </Departments-Employees> Seite 39

40 Realisierte Lösung : Hierarchische XML-Strukturen Master-Detail-Struktur wird aber abgebildet, wenn die Tabelle eine Spalte mit Objektrelationalem Typ enthält, welcher eine Liste mit (Detail)-Objekten enthält (Collection). create or replace type t_emp_obj as object ( empno number (4), ename varchar2 (10), ); / create or replace type t_emp_liste is table of t_emp_obj ; / Seite 40

41 Realisierte Lösung : Hierarchische XML-Strukturen Alternative: View, die den Objekttyp zur Laufzeit bildet: create view dept_emp_v as select deptno, cast (multiset (select empno, from emp where emp.deptno = dept.deptno order by empno ) as t_emp_liste ) as emp from dept; / Seite 41

42 Realisierte Lösung : Hierarchische XML-Strukturen Alternative: View, die den Objekttyp zur Laufzeit bildet: create view dept_emp_v as select deptno, cast (multiset (select empno, from emp where emp.deptno = dept.deptno order by empno ) as t_emp_liste ) as emp from dept; / Seite 42

43 Realisierte Lösung : Hierarchische XML-Strukturen Alternative: View, die den Objekttyp zur Laufzeit bildet: create view dept_emp_v as select deptno, cast (multiset (select empno, from emp where emp.deptno = dept.deptno order by empno ) as t_emp_liste ) as emp from dept; / Seite 43

44 Realisierte Lösung : Hierarchische XML-Strukturen Knotenstruktur kann nur bedingt konfiguriert werden <Departments-Employees> <Dept> <DeptNo>10</Deptno> <Emp> <EmpNo>7782t</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> <Departments-Employees> <ROW num="1"> <DEPTNO>10</DEPTNO> <EMP> <EMP_ITEM> <EMPNO>7782</EMPNO> </EMP_ITEM> <EMP_ITEM> </EMP_ITEM> </EMP> </ROW> <ROW num="2"> </ROW> </Departments-Employees> Seite 44

45 Realisierte Lösung : Hierarchische XML-Strukturen Knotenstruktur kann nur bedingt konfiguriert werden <Departments-Employees> <Dept> <DeptNo>10</Deptno> <Emp> <EmpNo>7782t</EmpNo> </Emp> <Emp> </Emp> </Dept> <Dept> </Dept> </Departments-Employees> <Departments-Employees> <ROW num="1"> <DEPTNO>10</DEPTNO> <EMP> <EMP_ITEM> <EMPNO>7782</EMPNO> </EMP_ITEM> <EMP_ITEM> </EMP_ITEM> </EMP> </ROW> <ROW num="2"> </ROW> </Departments-Employees> Seite 45

46 Realisierte Lösung : Hierarchische XML-Strukturen Knotenstruktur kann nur bedingt konfiguriert werden Lösung: Stylesheet-Transformation In unserem Fall auf dem Filesystem Anlog zur Umwandlung XML-CSV Alternative: direkt im CLOB Verwendung von XDK-Werkzeugen dbms_xmlgen dbms_xmlparser dbms_xslprocessor dbms_xmldom Seite 46

47 Realisierte Lösung : Große Dateien Erzeugte Dateien können einige 100 MB groß werden Speicherung im Hauptspeicher als ein CLOB ist für die vorhandene Systemkonfiguratíon problematisch Vergrößerung des Hauptspeichers, um solche CLOB-Größen zu verkraften, ist angesichts der Projektanforderungen nicht angemessen. Lösung: Erzeugung des XML-Dokuments in mehreren Schritten: Begrenzung der Datensätze pro Vorgang: dbms_xmlquery.setmaxrows(v_query_ctx, 100); Seite 47

48 Realisierte Lösung : Große Dateien Lösung: Erzeugung des xml-dokuments in mehreren Schritten: Schleife zur Erzeugung kleiner XMLDokumente: dbms_xmlquery.setraisenorowsexception(v_query_ctx, true); begin loop v_ergebnis_xml := dbms_xmlquery.getxml (v_query_ctx); end loop; exception when others then null; end; Achtung: Jedes Ergebnis-Clob ist ein wohlgeformtes XML-Dokument Der Dokumentheader wird jedes Mal eingefügt Auch der Dokumentknoten wird jedes Mal geöffnet und geschlossen Seite 48

49 Realisierte Lösung : Große Dateien Lösung: Erzeugung des xml-dokuments in mehreren Schritten: Schleife zur Erzeugung kleiner XMLDokumente: dbms_xmlquery.setraisenorowsexception(v_query_ctx, true); begin loop v_ergebnis_xml := dbms_xmlquery.getxml (v_query_ctx); end loop; exception when others then null; end; Achtung: Jedes Ergebnis-Clob ist ein wohlgeformtes XML-Dokument Der Dokumentheader wird jedes Mal eingefügt Auch der Dokumentknoten wird jedes Mal geöffnet und geschlossen Seite 49

50 Realisierte Lösung : Große Dateien Lösung: Erzeugung des xml-dokuments in mehreren Schritten: Zusammenführung der Einzeldokumente in einer Datei Entfernen der ersten beiden Zeilen ab dem 2. CLOB Entfernen der letzten Zeile in allen CLOBs bis auf das letzte Zeilen können in CLOB durch chr(10) identifiziert werden Alle Buffer an die XML-Datei anhängen Verwendung von utl_file.put Aufteilen CLOB in n Buffer mit maximal Zeichen Verwendung von dbms_lob.substr => varchar2-variable Buffergröße so wählen, dass die beiden ersten Zeilen komplett im ersten Buffer sind und die letzte Zeile komplett im letzten Buffer ist Seite 50

51 Gliederung Anforderungsszenario Lösungsalternativen Realisierte Lösung Technische Hürden, Lösungen und Workarounds Alternative Lösungen Fazit Fragen und Antworten Seite 51

52 Externe XML-Datei in clob laden: Alternative Lösung: Import mit dbms_xmlstore declaredeclare v_xml clob; v_xml_lobloc clob; v_datei bfile := bfilename ('XMLDIRECTORY', 'dept.xml'); begin dbms_lob.open (v_datei, dbms_lob.lob_readonly); dbms_lob.createtemporary (v_xml_lobloc, true); dbms_lob.loadfromfile(v_xml_lobloc, v_datei, dbms_lob.lobmaxsize); v_xml := v_xml_lobloc; dbms_lob.freetemporary (v_xml_lobloc); dbms_lob.close(v_datei); end; / Seite 52

53 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 53

54 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 54

55 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 55

56 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 56

57 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 57

58 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Seite 58

59 XML-Dokument einfacher Struktur (1 Tabelle): Alternative Lösung: Import mit dbms_xmlstore Kaum Konfigurationsmöglichkeiten im Vergleich mit dbms_xmlquery Konventionen ROW ROW NUM= <ROWSET> <ROW num="1"> <DEPTNO>10</DEPTNO> <DNAME>ACCOUNTING</DNAME> </ROW> <ROW num="2"> <DEPTNO>20</DEPTNO> <DNAME>RESEARCH</DNAME> </ROW> </ROWSET> Ggf. Stylesheettransformation Seite 59

60 Alternative Lösung: Import mit dbms_xmlstore XML-Dokument Hierarchischer Struktur (Master-Detail): Zieltabelle mit objektrelationaler Spalte (collection): create or replace type t_emp_obj as object ( empno number (4), ename varchar2 (10), ); / create or replace type t_emp_liste is table of t_emp_obj; / create table dept_emp (deptno number (2), dname varchar2 (14), emp t_emp_liste) nested table emp store as nt_emp; Seite 60

61 Alternative Lösung: Import mit dbms_xmlstore XML-Dokument Hierarchischer Struktur (Master-Detail): <ROWSET> <ROW num="1"> <DEPTNO>10</DEPTNO> <EMP> <T_EMP_OBJ> <EMPNO>7782</EMPNO> </T_EMP_OBJ> </EMP> </ROW> </ROWSET> Name der Collection-Spalte Name der Object Types Seite 61

62 XML-Dokument in Zieltabelle laden: Alternative Lösung: Import mit dbms_xmlstore declare v_xml clob; v_insctx dbms_xmlstore.ctxtype; v_rows number; begin v_insctx := dbms_xmlstore.newcontext('dept_emp'); dbms_xmlstore.clearupdatecolumnlist (v_insctx); dbms_xmlstore.setupdatecolumn (v_insctx, 'DEPTNO'); dbms_xmlstore.setupdatecolumn (v_insctx, 'DNAME'); dbms_xmlstore.setupdatecolumn (v_insctx, 'EMP'); v_rows := dbms_xmlstore.insertxml (v_insctx, v_xml); dbms_xmlstore.closecontext (v_insctx); -- commit; end; / Name der Collection- Spalte Seite 62

63 Für einfache Import-Export-Aufgaben (1 xml-file <=> 1 Tabelle) sind die XDK-Tools dbms_xmlquery und dbms_xmlstore hinreichend geeignet Fazit Bei hierarchischen Strukturen (Master-Detail) in einem XML-Dokument sind einige Tricks erforderlich Verwendung von Objekttypen bzw. Collections Ggf. Stylesheet-Transformationen Die Validierung und Transformation von XML-Dateien erfolgte über Java-Programme Aufruf aus PL/SQL: Performanceprobleme Indirekter Aufruf über OS-Befehl aus PL/SQL Seite 63

64 Fragen und Antworten F R A G E N A N T W O R T E N Seite 64

Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren

Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren Autor: Norbert Bahn, Opitz Consulting DOAGNews Q3_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda

Mehr

XML in der Oracle Datenbank

XML in der Oracle Datenbank XML in der Oracle Datenbank Oracle XML DB Eine kurze Einführung Gruppe A Michaela Geierhos Galina Hinova Maximilian Schöfmann AGENDA Warum XML in einer Datenbank? Was bietet die Oracle XML DB? Unterschiedliche

Mehr

Erzeugen von Constraints

Erzeugen von Constraints Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key

Mehr

Arbeit mit zusammengesetzten Datentypen

Arbeit mit zusammengesetzten Datentypen Arbeit mit zusammengesetzten Datentypen Zusammengesetzte Datentypen Typen: PL/SQL RECORDS PL/SQL TABELLEN Enthalten interne Komponenten Sind wiederverwendbar Copyright Oracle Corporation, 1998. All rights

Mehr

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Mittwoch, 9. November 2005 13h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Volker Husemann Thyssen Krupp Stahl

Mehr

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer

Mehr

Inhalt. Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints. Dr.

Inhalt. Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints. Dr. Inhalt Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints Dr.Frank Haney 1 Behandlung von Views durch den CBO View Merging bedeutet, daß

Mehr

Zusammengesetzte Datentypen

Zusammengesetzte Datentypen Zusammengesetzte Datentypen.1 Records... -4.1.1 Implizite Typdeklaration mit %ROWTYPE... -6.1.2 Referenzierung eines Records... -6.2 PL/SQL Tables... -8.2.1 Deklaration einer PL/SQL Table... -8.3 Referenzierung

Mehr

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

Dynamische Generierung von XML

Dynamische Generierung von XML Kunde: DOAGNews Ort, Datum: Artikel im Heft Q3 / 2005 Thema / Themen: Projekt: Autor: Artikel von merlin.zwo Dynamische Generierung von XML In Hakon Lugert Oracle & Technologien Systementwicklung Individuelle

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski Aufgabe 1 Erstellen Sie eine Abfrage, die aus der EMP/DEPT-Tabelle die Felder Empno, Ename, Deptno und dname aller Mitarbeiter mit einem Gehalt von > 2500 ausgibt. select EMPNO, ENAME from EMP where SAL

Mehr

Entspricht dem kartesischen Produkt von zwei oder mehr selektierten Tabellen ohne Join-Bedingung.

Entspricht dem kartesischen Produkt von zwei oder mehr selektierten Tabellen ohne Join-Bedingung. Tipps & Tricks: Neuerungen Joins Bereich: SQL Erstellung: 07/2004 HA Versionsinfo: 10.1, 10.2, 11.1, 11.2 Letzte Überarbeitung: 06/2009 MA Neuerungen zu Joins Ab Version 9i sind alle dem SQL:1999-Standard

Mehr

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL . Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL Johannes Gritsch Themenübersicht Neue Scheduler Job Typen SQL_SCRIPT und BACKUP_SCRIPT SQL RowLimit: PERCENT und TIES WITH-Klausel mit

Mehr

Dipl. Wirtsch.-Ing. Lars Geldner Nürnberg, 22.11.2007

Dipl. Wirtsch.-Ing. Lars Geldner Nürnberg, 22.11.2007 Dipl. Wirtsch.-Ing. Lars Geldner Nürnberg, 22.11.2007 Projektbericht Entwicklung eines Content Management Systems mit der Oracle 10g XML DB Agenda Projektbezug: EU-Projekt ENN-ICS Anforderungen wiederverwendbare

Mehr

Vergessene (?) SQL- und PL/SQL- Funktionen

Vergessene (?) SQL- und PL/SQL- Funktionen Vergessene (?) SQL- und PL/SQL- Funktionen Folge 1 Vortrag DOAG-Regiogruppe Freiburg/Südbaden 29.01.13 bulk collect (1) Aufgabenstellung: ca. 50.000 eingelesene Werte an Hand einer ID auf eine vorhandene

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 II,2: Schreiben von ausführbaren Statements Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg PL/SQL-Block-Syntax

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching Neuerungen in 12.2 Marco Patzwahl MuniQSoft GmbH Unterhaching Schlüsselworte Neuerungen in 12.2, DBA Einleitung Jede neue Datenbankversion bringt diverse Neuerungen mit. Nur welche sind wichtig und welche

Mehr

100% PL/SQL Web Content Management

100% PL/SQL Web Content Management DOAG 2003 12. bis 13. November 2003, Mannheim 100% PL/SQL Erfahrungsbericht Martin Friemel, Martin Kubitza Enterprise Web AG, Duisburg 1/11 Inhalt Dynamische Webseiten mit PL/SQL entwickeln LDAP-Autorisierung

Mehr

XML in der Oracle Datenbank "relational and beyond"

XML in der Oracle Datenbank relational and beyond XML in der Oracle Datenbank "relational and beyond" Ulrike Schwinn (Ulrike.Schwinn@oracle.com) Oracle Deutschland GmbH Oracle XML DB Ein Überblick 1-1 Agenda Warum XML in der Datenbank? Unterschiedliche

Mehr

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co. Security-Basics Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update Carsten Czarski, ORACLE Deutschland B.V. Co. KG Themen Rechte, Rollen und PL/SQL: Grundsätzliches Invokers vs.

Mehr

Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports

Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports Andreas Wismann WHEN OTHERS Beratung Projektmanagement Coaching rund um Oracle Application Express rund um Application Express Beratung Projektmanagement

Mehr

<Insert Picture Here> XML und die Oracle Datenbank

<Insert Picture Here> XML und die Oracle Datenbank XML und die Oracle Datenbank Ulrike Schwinn (ulrike.schwinn@oracle.com) ORACLE Deutschland B.V. & Co.KG Realisierung mit der Datenbank Ein einziges zentrales Repository Einheitlicher

Mehr

Advanced Queues und XML-DB Integration von Oracle in einer SOA mit Hilfe von asynchroner Kommunikation und XML-Verarbeitung

Advanced Queues und XML-DB Integration von Oracle in einer SOA mit Hilfe von asynchroner Kommunikation und XML-Verarbeitung TAG DER DATENBANKEN 20.06.2013 Udo Pütz Dr. Andreas Kumpf Advanced Queues und XML-DB Integration von Oracle in einer SOA mit Hilfe von asynchroner Kommunikation und XML-Verarbeitung Übersicht Motivation

Mehr

DBMS_RLS Package Es besteht die Möglichkeit, auf Views oder Tables eine Funktion zu legen, die abhängig von bestimmten Faktoren

DBMS_RLS Package Es besteht die Möglichkeit, auf Views oder Tables eine Funktion zu legen, die abhängig von bestimmten Faktoren Tipps & Tricks: Row Level Security Bereich: DBA Erstellung: 092008 MP Versionsinfo: 10.1, 10.2, 11.1 Letzte Überarbeitung: 072009 MP Row Level Security DBMS_RLS Package Es besteht die Möglichkeit, auf

Mehr

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Codegenerator für APEX Collections und Tabular Forms

Codegenerator für APEX Collections und Tabular Forms Codegenerator für APEX Collections und Tabular Forms Andreas Wismann wismann@when-others.com WHEN OTHERS Beratung Programmierung Coaching Agenda Andreas Wismann wismann@when-others.com Tabular Forms Features

Mehr

Housekeeping -2

Housekeeping -2 Housekeeping -1 Housekeeping -2 Housekeeping -3 Housekeeping -4 Housekeeping -5 Housekeeping -6 Stichwörter: Aufräumen im Dateisystem Housekeeping -7 Stichwörter: Aufräumen im Dateisystem Housekeeping

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Housekeeping -2

Housekeeping -2 Housekeeping -1 Housekeeping -2 Housekeeping -3 Housekeeping -4 Housekeeping -5 Housekeeping -6 Weitere Ordner unter $ORA_CRS_HOME/log/crs: log : Verzeichnis für CRS Resourcen die dazukommen, neu gestartet

Mehr

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_20120918_lids7.basisschulung_import_export.

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_20120918_lids7.basisschulung_import_export. LIDS 7 Import/Export Mannheim, 11.02.2013 Autor: Anschrift: Version: Status: Modifiziert von: Ablage: Christine Sickenberger - Asseco BERIT GmbH Asseco BERIT GmbH Mundenheimer Straße 55 68219 Mannheim

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

XML in Oracle 12c. Wolfgang Nast

XML in Oracle 12c. Wolfgang Nast XML in Oracle 12c Wolfgang Nast Agenda Vorstellung der Möglichkeiten Klassisch XDB Beispiel XML Schema Umsetzung klassisch Umsetzung XDB Zusammenfassung 2 XML in Oracle 12c Im Überblick Technologie-orientiert

Mehr

Erfahrungsbericht mit Oracle Spatial

Erfahrungsbericht mit Oracle Spatial Erfahrungsbericht mit Oracle Spatial DOAG Oracle Spatial & Geodata Day Eva-Maria Kramer Kurzprofil Marktführer für eenvironment: Führendes Softwarehaus für Lösungen zum Umweltmonitoring und raumbezogenen

Mehr

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH Logging und Debugging Gerd Volberg OPITZ CONSULTING Deutschland GmbH Bochum, 20. Februar 2014 OPITZ CONSULTING GmbH Seite 1 Agenda 1. Logging Datenmodell Tabellen Views 2. Debugging Debug-Package Funktionen

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik

Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik 1. Aufgabe (Normalisierung, 28 Punkte) Das Maklerbüro Foldur-Estate beschäftigt mehrere Makler, die jeweils unterschiedliche Mietwohnungen im Angebot haben. Jede Wohnung hat einen Vermieter, Vermieter

Mehr

Komplexe Excel-Berichte mit APEX und jxls erstellen

Komplexe Excel-Berichte mit APEX und jxls erstellen Komplexe Excel-Berichte mit APEX und jxls erstellen Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, MS Excel, jxls, Bericht, Template, Open Source Einleitung In fast jeder Webapplikation

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen Explizite Jedes SQL Statement, das der Oracle Server ausführt, hat einen individuellen, der verbunden ist mit: Implizitem : Declariert für alle DML-Statements und PL/SQL SELECT Statements. Explizitem :

Mehr

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH Oracle 8i und 9i New Features DOAG November 200 Peter Jensch, Trivadis GmbH Facts & Figures Über 300 Mitarbeiter (D und CH) Über 200 Oracle Consultant Über 300 Kunden (ohne Schulung) Über 000 Projekte

Mehr

Warum wird mein Index nicht benutzt?

Warum wird mein Index nicht benutzt? Warum wird mein Index nicht benutzt? Index Nutzung-1 Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um eine Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting

Mehr

Dirk Nachbar (dirk.nachbar@trivadis.com)

Dirk Nachbar (dirk.nachbar@trivadis.com) Betrifft: Autor: Art der Info: Quelle: XSQL Servlet und FOP Dirk Nachbar (dirk.nachbar@trivadis.com) Technische Background Info Aus unserer Projekt- und Schulungserfahrung http://xml.apache.org/fop, http://www.xml.com,

Mehr

Javaaktuell. Java ist vielseitig. ijug. Praxis. Wissen. Networking. Das Magazin für Entwickler Aus der Community für die Community

Javaaktuell. Java ist vielseitig. ijug. Praxis. Wissen. Networking. Das Magazin für Entwickler Aus der Community für die Community 04-2016 Winter www. ijug.eu Praxis. Wissen. Networking. Das Magazin für Entwickler Aus der Community für die Community Java ist vielseitig Javaaktuell 4 191978 304903 04 D: 4,90 EUR A: 5,60 EUR CH: 9,80

Mehr

DOAG 2016 Oracle APEX Security

DOAG 2016 Oracle APEX Security Für die Restricted Einstellung sind nur folgende Items vorgesehen: Display as Text (escape special characters, does not save state) Display as Text (does not save state) Display as Text (based on LOV,

Mehr

Oracle Database Vault Beispiele zur Benutzung

Oracle Database Vault Beispiele zur Benutzung Oracle Database Vault Beispiele zur Benutzung Grundsätzliches: Beispiel für Trennung der Verantwortlichkeiten in unserer Umgebung: wichtige RollenAufgaben: DB-Benutzer Rolle Aufgabe SYS SYSDBA Verwalter

Mehr

Oracle Forms und APEX

Oracle Forms und APEX überraschend mehr Möglichkeiten! Oracle Forms und APEX Gerd Volberg + Jan Winkels OPITZ CONSULTING Deutschland GmbH OPITZ CONSULTING 2016 Agenda 1 2 3 4 5 Oracle Forms APEX Live-Demos Known Problems Resümee

Mehr

7. XML-Datenbanksysteme und SQL/XML

7. XML-Datenbanksysteme und SQL/XML 7. XML-Datenbanksysteme und SQL/XML Native XML-DBS vs. XML-Erweiterungen von ORDBS Speicherung von XML-Dokumenten Speicherung von XML-Dokumenten als Ganzes Generische Dekomposition von XML-Dokumenten Schemabasierte

Mehr

Moderne Datenbankkonzepte

Moderne Datenbankkonzepte Verteilte Datenbanken Moderne Datenbankkonzepte Wünschenswert, aber extrem aufwändig ( Zweiphasen Commit) Objektrelationale Datenbanken Kompromiss zwischen relational und rein objektorientiert seit 1999

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32 XMLType Christian Senger/Andreas Schmidt XMLType 1/32 XMLType von Oracle vordefinierter Typ zur Speicherung von nativen XML-Dokumenten unterstützt verschiedene Speichermodelle für XML structured storage

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes Autor: Klaus Friemelt, MT AG DOAGNews Q1_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der

Mehr

Nested Tables Types als Ergänzung zu Pivot XML

Nested Tables Types als Ergänzung zu Pivot XML Nested Tables Types als Ergänzung zu Pivot XML Thomas Strub Logica Deutschland GmbH & Co. KG Frankfurt Schlüsselworte Nested Tables, pivot, pivot xml, unpivot, collect, PL/SQL Einleitung Die Verknüpfung

Mehr

Designer Development Kit (DDK)

Designer Development Kit (DDK) Designer Development Kit (DDK) Eigene Code-Generatoren im Designer Dr. Gudrun Pabst Trivadis GmbH Dr. Jürgen Menge Oracle GmbH Inhalt > Agenda Für besseren Durchblick. Zum Hintergrund... Installation,

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators München, 21. Nowember 2007 Nicola Marangoni & Jörg Westermayer Nicola.Marangoni@SHS-VIVEON.com Joerg.Westermayer@SHS-VIVEON.com

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 A,2: Hierarchische Anfragen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Wann ist eine hierarchische Anfrage

Mehr

Seminar XML und Datenbanken Andreas Krug. XML -Unterstützung durch IBM DB2

Seminar XML und Datenbanken Andreas Krug. XML -Unterstützung durch IBM DB2 Seminar XML und Datenbanken Andreas Krug XML -Unterstützung durch IBM DB2 Fahrplan 1. XML-enabled Unterstützung vs. native XML Unterstützung 2. Nachteile der relationalen XML- Unterstützung 3. Native XML-Verarbeitung

Mehr

SQL mit ORACLE. Wolf-Michael Kahler

SQL mit ORACLE. Wolf-Michael Kahler Wolf-Michael Kahler SQL mit ORACLE Eine aktuelle Einfuhrung in die Arbeit mit relationalen und objektrelationalen Datenbanken unter Einsatzvon ORACLE Express Mit 311 Abbildungen 3., aktualisierte und erweiterte

Mehr

Mengen- oder SET-Operatoren fassen das Ergebnis von zwei oder mehreren Teilabfragen zu einem Ergebnis zusammen.

Mengen- oder SET-Operatoren fassen das Ergebnis von zwei oder mehreren Teilabfragen zu einem Ergebnis zusammen. Tipps & Tricks: Mengenoperatoren Bereich: DBA, SQL Erstellung: 06/2004 MP Versionsinfo: 10.1, 10.2, 11.1, 11.2 Letzte Überarbeitung: 06/2009 MA Mengenoperatoren Mengen- oder SET-Operatoren fassen das Ergebnis

Mehr

<Insert Picture Here> z/os Migration und Integration

<Insert Picture Here> z/os Migration und Integration z/os Migration und Integration Thomas Niewel Leitender Systemberater Agenda Überblick Integration von z/os Daten und Anwendungen Migration von z/os Daten und Anwendungen Erfahrungen

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 II,11: Erstellen von Datenbank- Triggern Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Überblick über Trigger

Mehr

Prakt. Datenbankprogrammierung. Sommersemester Überblick über Trigger. II,11: Erstellen von Datenbank- Triggern. Datenbank-Trigger: Beispiel

Prakt. Datenbankprogrammierung. Sommersemester Überblick über Trigger. II,11: Erstellen von Datenbank- Triggern. Datenbank-Trigger: Beispiel Prakt. Datenbankprogrammierung Sommersemester 2005 II,11: Erstellen von Datenbank- Triggern Überblick über Trigger Ein Trigger ist ein PL/SQL-Block, der bei einem bestimmten festgelegten Ereignis (Event)

Mehr

Oracle PL/SQL und XML. Marco Skulschus Marcus Wiederstein

Oracle PL/SQL und XML. Marco Skulschus Marcus Wiederstein www.comelio-medien.com Oracle, PL/SQL und XML Marco Skulschus Marcus Wiederstein Oracle PL/SQL und XML Marco Skulschus Marcus Wiederstein Oracle, PL/SQL und XML Marco Skulschus Marcus Wiederstein Webseite

Mehr

Erfahrungsbericht - Oracle ADF 11g im produktiven Einsatz

Erfahrungsbericht - Oracle ADF 11g im produktiven Einsatz Erfahrungsbericht - Oracle ADF 11g im produktiven Einsatz Martin Kunze, 17.11.2011 Agenda Robotron Grundkonzepte ADF vs. Forms Verwendeter ADF Technologiestack PL/SQL-Wiederverwendung in ADF Connection-Pooling,

Mehr

V$ALERT_LOG_ERRORS Erzeugung einer strukturierten Sicht auf die Fehlermeldungen im Alert-Log

V$ALERT_LOG_ERRORS Erzeugung einer strukturierten Sicht auf die Fehlermeldungen im Alert-Log V$ALERT_LOG_ERRORS Erzeugung einer strukturierten Sicht auf die Fehlermeldungen im Alert-Log Autor: Dr. Kurt Franke, debitel AG DOAGNews Q4_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Objektrelationale, erweiterbare Datenbanken WS 04/05

Objektrelationale, erweiterbare Datenbanken WS 04/05 Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich Institut für Informationssysteme Dr.C.Türker Objektrelationale, erweiterbare Datenbanken WS 0405 Übung 8 Aufgabe

Mehr

Triggern. Change Data Capture

Triggern. Change Data Capture Triggern. Change Data Capture Triggers Was sind Triggers? Eine bestimmte Art von gespeicherte Prozedur, die automatisch ausgeführt wird wenn eine DML oder DDL Anweisung ausgeführt wird Eine Menge von Aktionen,

Mehr

Views erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View?

Views erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View? Datenbank - Objekte Views erzeugen Objekt Tabelle View Sequence Index Synonym Objekt Beschreibung Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen von

Mehr

Inside Oracle11g Release 2: Neues für den Anwendungsentwickler

Inside Oracle11g Release 2: Neues für den Anwendungsentwickler Inside Oracle11g Release 2: Neues für den Anwendungsentwickler Carsten Czarski ORACLE Deutschland GmbH Einleitung Oracle11g bringt für nahezu alle Bereiche der Anwendungsentwicklung, unabhängig von der

Mehr

Oracle und LDAP. Zugriff auf LDAP-Daten aus einer Oracle-DB. Martin Busik busik@wlp-systems.de

Oracle und LDAP. Zugriff auf LDAP-Daten aus einer Oracle-DB. Martin Busik busik@wlp-systems.de Oracle und LDAP Zugriff auf LDAP-Daten aus einer Oracle-DB Martin Busik busik@wlp-systems.de Lightweight Directory LDAP Access Protocol LDAP dc=de dc=wlp Systems dc=drucker cn=lj4100d cn=canon photo ou=mitarbeiter

Mehr

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten Roland Tilgner Solution Architects & Team Coaching DEVELOPMENT ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten ZURPERSON Roland Tilgner ZURFIRMA Roland Tilgner Solution Architects & Team Coaching

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

XML in Oracle. Workshop. Ing. Markus Gamperl

XML in Oracle. Workshop. Ing. Markus Gamperl XML in Oracle Workshop Ing. Markus Gamperl mariahilferstraße 52, 1070 wien, österreich tel.: +43-1-5326852-0 fax: +43-1-5326852-20 w w w. j o y n - i t. a t Inhalt Teil 1 Oracle 9i/10g XML-Datenbank 1)

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Reporting Lösungen für APEX wähle Deine Waffen weise

Reporting Lösungen für APEX wähle Deine Waffen weise Reporting Lösungen für APEX wähle Deine Waffen weise Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, Reporting, JasperReports, PL/PDF, BI Publisher, OPAL:XP, Doxxy, Oracle Rest Data Services

Mehr

PostgreSQL Ein Überblick

PostgreSQL Ein Überblick 26. August 2007 Agenda Neue Funktionen im Bereich SQL, XML und Volltextsuche Geschwindigkeitsverbesserungen Neue Erweiterungen (contrib) XML (1) Neuer Datentyp xml ( well-formedness ) Viele Funktionen

Mehr

Objektorientierung unter Oracle richtet sich einerseits nach objekt-orientierten Programmiersprachen wie Java,

Objektorientierung unter Oracle richtet sich einerseits nach objekt-orientierten Programmiersprachen wie Java, Tipps & Tricks: Objektorientierung Bereich: PLSQL Erstellung: 032001 HA Versionsinfo: 9.2, 10.2, 11.1 Letzte Überarbeitung: 062009 HA Objektorientierung unter Oracle Objektorientierung unter Oracle richtet

Mehr

Objektorientierte PL/SQL-Programmierung für RDBMS

Objektorientierte PL/SQL-Programmierung für RDBMS Willkommen Objektorientierte PL/SQL-Programmierung für RDBMS Andriy Terletskyy Berenberg Bank Neuer Jungfernstieg 20 20354 Hamburg Berenberg stellt sich vor MDV/EDV- Erfahrung Zeitraum Hardware Datenbank

Mehr

Eigene Funktionen innerhalb von pgsql

Eigene Funktionen innerhalb von pgsql Eigene Funktionen innerhalb von pgsql Michael Dienert 25. November 2015 1 Warum noch eine Programmiersprache? SQL ist ein Standard, der von praktisch allen relationalen Datenbank-Servern als Abfragesprache

Mehr

Hans Buschmann. InnoData GmbH

Hans Buschmann. InnoData GmbH 1 Guten Tag Hans Buschmann InnoData GmbH 79219 Staufen Ballrechterstr. 1 Tel. 07633-2081 Email: unglauben@innodatagmbh.de 2 Thema WEB basierende XML-Anwendung im praktischen Einsatz Wie erreicht man mit

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

Trigger schreiben. Überblick über Trigger. Datenbank Trigger: Beispiel. Aufbau eines Triggers

Trigger schreiben. Überblick über Trigger. Datenbank Trigger: Beispiel. Aufbau eines Triggers Überblick über Trigger Trigger schreiben Ein Trigger ist ein PL/SQL Block, der implizit aufgerufen wird, wenn ein bestimmtes Ereignis eintritt. Ein Trigger kann ein Datenbanktrigger oder ein Anwendungstrigger

Mehr

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt Some SQL Queries % you can use them with the project Buch/Verlag select Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf select DISTINCT Name, ort From Verkauf; selektiert Name und Ort

Mehr

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1 SQL-Loader Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner 05.05.2006 1 Beschreibung Definition transferiert Daten aus einer oder mehreren externen Dateien in eine oder mehrere Tabellen einer Oracle-Datenbank.

Mehr

PL/SQL Zeitbomben. Martin Friemel DOAG 2012 Konferenz 21. November 2012, 16:00 Uhr NCC NürnbergConvention Center Ost

PL/SQL Zeitbomben. Martin Friemel DOAG 2012 Konferenz 21. November 2012, 16:00 Uhr NCC NürnbergConvention Center Ost DOAG 2012 Konferenz 21. November 2012, 16:00 Uhr NCC NürnbergConvention Center Ost PL/SQL Zeitbomben Seit Jahren läuft alles ohne Probleme - und plötzlich zerstört die Software Ihre Daten. Martin Friemel

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr