Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Jan 2005 Neue Funktionen für AE und Applikationsprogramme (DB2-V8_AE_APneu) IBM DB2 V8 for z/OS (*) (*) ist eingetragenes Warenzeichen der IBM International.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Jan 2005 Neue Funktionen für AE und Applikationsprogramme (DB2-V8_AE_APneu) IBM DB2 V8 for z/OS (*) (*) ist eingetragenes Warenzeichen der IBM International."—  Präsentation transkript:

1 1 Jan 2005 Neue Funktionen für AE und Applikationsprogramme (DB2-V8_AE_APneu) IBM DB2 V8 for z/OS (*) (*) ist eingetragenes Warenzeichen der IBM International Business Machines Inc.

2 2 Jan 2005 Neue AP Funktionen 3.1dynamic scrollable Cursors 3.2 SQL/PL Funktionen 3.3STP und Procedure Verbesserungen 3.4Neue Spezialregister SET Current Schema SET Current PACKAGEPATH 3.5ODBC Verbesserungen 3.6Implizite RRSAF Verbindungen 3.7Neue XML Funktionen

3 3 Jan 2005 Neue AP Funktionen 3.1 dynamic scrollable Cursors Scrollable cursor, die den Zugriff auf die the base table anders zulassen als eine DTT – ermöglichen das Sichtbarwerden von eigenen und fremden updates und inserts Führt als Default einen single row FETCH aus. DDF Applikationen sollten:: Multi-row FETCH Positioned UPDATE/DELETE for multi-row FETCH verwenden. DECLARE C1 SENSITIVE DYNAMIC SCROLL CURSOR FOR SELECT C1, C2 FROM T1;

4 4 Jan Scrollable Cursor - Wiederholung Implizit über temporary tables (Anwendungs-Scope), d.h. Zugriff auf TEMPDB erforderlich Zwei unterschiedliche Typen 1.Insensitive Keine Verbindung zu Basis-Daten 2.Static Sensitive Implizite Synchronisierung über RID und Re-Evaluierung des WHERE... Syntax-Erweiterungen für DECLARE und FETCH Neue SQLCODEs beim Zugriff auf nicht(mehr) existente Cursor-Daten Neue AP Funktionen

5 5 Jan Scrollable Cursor Typen Insensitive scrollable cursor immer static Feste Anzahl rows Nutzung von Declared temp tables Sensitive static scrollable cursor immer static Feste Anzahl rows Nutzung von Declared temp tables Sensitive auf Änderungen, aber nicht auf INSERTs Sensitive dynamic scrollable cursor direct table access live data access Neue AP Funktionen

6 6 Jan Scrollable Cursor - Syntax DECLARE cname INSENSITIVE STATIC SENSITIVE SCROLL CURSOR.... Neue AP Funktionen

7 7 Jan Scrollable Cursor – (Cursordefinitionen) Updatable cursor Aware of own updates and deletes within cursor sees all committed updates and deletes All inserts not recognized Read only cursor Not aware of updates or deletes in base table Updatable cursor Aware of own updates or deletes within cursor Other changes to base table not visible to cursor All inserts not recognized Neue AP Funktionen

8 8 Jan 2005 Result Set -DB2 erzeugt eine TEMP Tabelle - der Zugriff ist exklusiv - es existiert eine fixe Anzahl rows - Tabelle wird zum Zeitpunkt CLOSE CURSOR gelöscht - erfordert TEMP DB und vordefinierte TS RESULT SET FETCH Öffnen eines Scrollable Cursor ACCOUNT- Tabelle ACCOUNT- Tabelle DECLARE curs1 SENSITIVE SCROLL CURSOR WITH HOLD FOR SELECTaccount, account_name, credit_limit,type FROMaccount WHEREaccount = :in_account..... OPEN curs1.... Neue AP Funktionen

9 9 Jan Scrollable Cursor – FETCH Ergebnismenge Aktuelle Position BEFOREABSOLUTE 0 AFTER ABSOLUTE -1 FIRSTABSOLUTE 1 LAST CURRENTRELATIVE 0 PRIORRELATIVE -1 NEXTRELATIVE +1 Neue AP Funktionen

10 10 Jan Neue AP Funktionen Scrollable Cursor – neue Attribute SENSITIVE DYNAMIC Gibt an, dass die Grösse der RT nicht zum Zeitpunkt des OPEN Cursor festgelegt wird Der Cursor ist vollständig sensibel auf Änderungen -Alle committed inserts, updates, deletes durch andere AP Prozesse -Alle positioned updates und deletes innerhalb des Cursors -Alle inserts, updates, deletes durch denselben AP Prozess, aber ausserhalb des Cursors Der FETCH erfolgt gegen die base table da keine temporary result table erstellt wird ASENSITIVE DB2 entscheidet über die sensitivity of cursor Wenn read-only... -Cursor ist INSENSITIVE wenn das SELECT Statement SENSITIVE nicht erlaubt (UNION, UNION ALL, FOR FETCH ONLY, FOR READ ONLY) -Er verhält sich wie ein insensitive cursor Wenn not read-only, wird SENSITIVE DYNAMIC für ein Maximum an sensitivity stehen Vorwiegend sinnvoll für Client AP, die sich nicht darum kümmern, ob die Server sensitivity oder scrollability unterstützen Neue AP Funktionen

11 11 Jan 2005 FETCH INSENSITIVE SENSITIVE NEXT / PRIOR / FIRST / LAST / CURRENT /BEFORE / AFTER cursorname ABSOLUTE RELATIVE integer host-variable * *) Typ integer oder DECIMAL (18,0) Scrollable Cursor – FETCH Syntax (keine Änderung) FROM Neue AP Funktionen

12 12 Jan Scrollable Cursor – Einflüsse auf FETCHes INSENSITIVE geht nicht im FETCH Statement (SQLCODE -244) wenn zugehörige Cursor mit SENSITIVE DYNAMIC SCROLL definiert ist Der Cursor als ASENSITIVE deklariert wurde und DB2 die maximale mögliche sensitivity bei SENSITIVE DYNAMIC SCROLL vorgibt Es gibt KEINE "holes", da es KEINE temporary result table gibt Spezialfall: Wenn FETCH CURRENT oder FETCH RELATIVE +0 gefordert wurde, aberdie row auf die der Cursor positioniert war, gelöscht oder geändert wurde, sodass sie nicht mehr zur Resultatsmenge gehört (SQLCODE +231) Beispiel: bei ISOLATION(CS) und CURRENTDATA(NO) Inserts durch das eigene AP sind unmittelbar sichtbar fremde inserts sind NACH COMMIT sichtbar Die Reihenfolge wird IMMER gepflegt Wenn die current row updated, der Cursor vor die next rowder ursprünglichen Position positioned wurde und es keine current row gibt Neue AP Funktionen

13 13 Jan Locking bei Dynamic Scrollable Cursors ISOLATION CS ist empfohlen (maximum concurrency) RR / RS behindern updates durch andere User auf die Tabelle, in diesem Fall sollte man SENSITIVE DYNAMIC vermeiden Lock wird auf die current row gesetzt, da die base table immer direkt zugegriffen wird Wie schon immer wird die ISOLATION UR als BIND Option auf CS angehoben, wenn das SELECT … FOR UPDATE OF… enthält Normalerweise werden, falls der Cursor mit WITH HOLD definiert wurde, die Locks zum Zeitpunkt COMMIT freigegeben, ausser der Parameter DSNZPARM RELCURHL=NO ist gesetzt. Optimistic locking wird bei static scrollable cursors angewendet Static scrollable cursors – keine Locks auf die base tables nach OPEN CURSOR Check at update time KEIN Optimistic locking bei dynamic scrollable cursors (wie bei non-scrollable cursors) Positioned UPDATE und DELETE sind IMMER erlaubt, wenn der Cursor nicht read-only und ein page- oder row- Lock erfolgreich angefordert ist Neue AP Funktionen

14 14 Jan 2005 Absolute Cursorbewegung:FETCH... ABSOLUTE + 5 FROM curs1; oder MOVE 5 TO cursor-position FETCH... ABSOLUTE :cursor-position FROM curs1 Relative Cursorbewegung:FETCH... RELATIVE - 5 FROM curs1; oder MOVE -5 TO cursor-move FETCH... RELATIVE :cursor-move FROM curs1 FETCH... NEXT FROM curs1; Neue FETCH – keywordsNEXT, PRIOR, FIRST, LAST, CURRENT, BEFORE, AFTER, ABSOLUTE, RELATIVE Scrollable Cursor – FETCH(Beispiele) Neue AP Funktionen

15 15 Jan 2005 DECLARE ORDERSCROLL SENSITIVE DYNAMIC SCROLL CURSOR FOR SELECT ORDERNUM, CUSTNAME, ORDERAMT, ORDERDATE FROM ORDERS WHERE ORDERAMT > 1 FOR UPDATE OF COMMENTS; ** Open scrollable cursor OPEN ORDERSCROLL; ** Fetch forward from scrollable cursor ** LOOP-TO-FILL SCREEN DO 3 TIMES FETCH FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; END ** Fetch RELATIVE from scrollable cursor ** Skip forward 1 row FETCH RELATIVE +1 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; ** Skip backward 5 rows FETCH RELATIVE -5 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; Dynamic Scrollable Cursor –Beispiele Neue AP Funktionen

16 16 Jan 2005 ** Fetch ABSOLUTE from scrollable cursor ** Re-read the third row FETCH ABSOLUTE + 3 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; ** Fetch RELATIVE from scrollable cursor ** Read the third row from the current position FETCH SENSITIVE RELATIVE +3 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; ** Execute a positioned UPDATE through scrollable cursor ** Update the current row UPDATE ORDERS SET COMMENTS = "Expedite" WHERE CURRENT OF ORDERSCROLL; ** Close the scrollable cursor CLOSE ORDERSCROLL; ** Fetch ABSOLUTE from scrollable cursor ** Re-read the third row FETCH ABSOLUTE + 3 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; ** Fetch RELATIVE from scrollable cursor ** Read the third row from the current position FETCH SENSITIVE RELATIVE +3 FROM ORDERSCROLL INTO :hv1, :hv2, :hv3, :hv4; ** Execute a positioned UPDATE through scrollable cursor ** Update the current row UPDATE ORDERS SET COMMENTS = "Expedite" WHERE CURRENT OF ORDERSCROLL; ** Close the scrollable cursor CLOSE ORDERSCROLL; Dynamic Scrollable Cursor –Beispiele (Contned) Neue AP Funktionen

17 17 Jan Dynamic Scrollable Cursor – ein Vergleich Neue AP Funktionen Cursor TypResult Table Eigene Än- derungen sichtbar ? Fremd-Än- derungen sichtbar ? Update- Fähigkeit Non-Scrollable (SQL mit JOIN, Sort usw.) Non-Scrollable INSENSITIVE SCROLL SENSITIVE STATIC SCROLL SENSITIVE DYNAMIC SCROLL No Yes Keine INSERTs Fixed, workfile no workfile, base table access Fixed, declared temp table Fixed, declared temp table No declared temp table, base table access

18 18 Jan 2005 Scrollable cursor sind erlaubt: SPUFI und QMF REXX Programme Java Programme client Programme mit DB2 Connect static und dynamic OS/390 compiled programs compiled stored procedures (inklusive SQL stored procedures) ODBC Scrollable cursor sind nicht erlaubt für: Dynamic Scrollable Cursor – ein Vergleich Neue AP Funktionen

19 19 Jan SQL/PL Funktionen für STPs Neue AP Funktionen Vorteil..... Verbessert die Nutzbarkeit und power der SQL procedure language (PSM) DB2 Family Kompatibilität Konform zu den SQL Standards V8 Verbesserungen Neue SQL procedure statements zur Übergabe von STATUS Informationen von der SQL Procedure an die rufende Applikation -RETURN Statement -SIGNAL/RESIGNAL Unterstützung -GET DIAGNOSTICS -ITERATE Verbesserte LOB und Variablen Unterstützung mit V8 SQL Statement Limit Erweiterung auf 2MB Integrierter debugger

20 20 Jan SQL/PL Funktionen für STPs - RETURN Neue AP Funktionen Für eine SQL Procedur wird ein Statuswert im INTEGER Format an die aufrufende Applikation zurückgegeben Der caller ´kann diesen Wert erhalten über: RETURN_STATUS aus GET DIAGNOSTICS Direkt aus der SQLCA in SQLERRD[0] Return des value parameter markers in der escape Klausel der CALL Syntax in CLI oder ODBC Applikationen Zusätzliche GET DIAGNOSTICS Information MESSAGE_TEXT Klausel enthält den aktuellen Meldungstext MESSAGE_LENGTH Klausel enthält die Länge der aktellen Meldung Für SQL scalar functions, wird das Resultat der Funktion (V7) zurückgeliefert Return Value = 0 wenn erfolgreich, und -2 wenn nicht BEGIN.... GOTO FEHLER; SUCCESS:RETURN; FEHLER:RETURN -2 END;

21 21 Jan SQL/PL Funktionen für STPs – SIGNAL/RESIGNAL Neue AP Funktionen DECLARE EXIT HANDLER FOR SQLSTATE VALUE SIGNAL SQLSTATE SET MESSAGE_TEXT = Customer is unknown; INSERT INTO ORDERS (....) VALUES (....); CREATE PROCEDURE SUBMIT_ORDER (IN ONUM INTEGER, IN CNUM INTEGER, IN PNUM INTEGER, IN QNUM INTEGER) LANGUAGE SQL MODIFIES SQL DATA BEGIN DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503' SIGNAL SQLSTATE '75002' SET MESSAGE_TEXT = 'Customer number is not known'; INSERT INTO ORDERS (ORDERNO, CUSTNO, PARTNO, QUANTITY) VALUES (ONUM, CNUM, PNUM, QNUM); END

22 22 Jan SQL/PL Funktionen für STPs – SIGNAL/RESIGNAL Neue AP Funktionen CREATE PROCEDURE divide ( IN numerator INTEGER, IN denominator INTEGER, OUT divide_result INTEGER) LANGUAGE SQL CONTAINS SQL BEGIN DECLARE overflow CONDITION FOR SQLSTATE '22003'; DECLARE EXIT HANDLER FOR overflow RESIGNAL SQLSTATE '22375'; IF denominator = 0 THEN SIGNAL overflow; ELSE SET divide_result = numerator / denominator; END IF; END Benutzt, um innerhalb eines Handlers eine exception erneut anzuzeigen Erzeugt einen error/warning mit einem vorgegebenen SQLSTATE und einem optionalen Meldungstext SQLSTATE kann einen eigenen Wert enthalten (Klasse '01' oder '02) Ein optionaler MESSAGE_TEXT ist erlaubt

23 23 Jan 2005 ITERATE Statement nun auch in DB2 for z/OS (V8) möglich Already supported in DB2 for iSeries and DB2 for LUW Das ITERATE Statement veranlasst das Programm an den Beginn eines labeled loop zurückzukehren Das label muss ein FOR, LOOP, REPEAT oder WHILE Statement markieren ITERATE ist ab jetzt ein reserved word in SQL Statements 3.2 SQL/PL Funktionen für STPs – SIGNAL/RESIGNAL Neue AP Funktionen Beispiel: ins_loop: LOOP FETCH hv_dept... IF hv_dept ^='D11' THEN ITERATE ins_loop; ELSEIF...

24 24 Jan Stored Procedures und UDF Verbesserungen Angabe der maximalen Anzahl von Fehlern für eine STP Granulare Kontrolle über STPs und UDFs Fehlermanagement User kann für jede stored procedure oder user-defined function festlegen, wie oft eine Routine Fehler haben kann, bevor sie gestoppt wird Festgelegt auf routine level, anstatt auf subsystem level (MAX ABEND COUNT - DSNZPARM STORMXAB) Spezifiziert beim CREATE/ALTER FUNCTION/PROCEDURs (STOP AFTER SYSTEM DEFAULT FAILURES, STOP AFTER n FAILURES, CONTINUE AFTER FAILURE Nicht für originäre und SQL scalar UDFs Besseres WLM Ressource Management für stored routines Besseres resource management durch Ausnutzen der Möglichkeiten des z/OS workload managers WLM entscheidet selbst über die Ressourcennnutzung und empfiehlt Änderungen in der task-Anzahl für den SPAS -TCBs werden aufgrund dieser WLM-Empfehlungen hinzugefügt/entfernt -Attach eines neuen TCB ist billiger als einen neuen address space zu starten -MAXTCB definiert hierzu das Maximum Empfehlung: Angabe einer hohen Zahl in MAXTCB und WLM erledigt den Rest Neue AP Funktionen

25 25 Jan 2005 scrollable cursor in STPs sind immer READ-ONLY Können aber dennoch STATIC SENSITIVE definiert werden. main() { EXEC SQL BEGIN DECLARE SECTION; char hv_account[30]; char hv_acctname[30]; EXEC SQL END DECLARE SECTION;. EXEC SQL BEGIN DECLARE SECTION; static volatile SQL TYPE IS RESULT_SET_LOCATOR *CRTPROCS_rs_loc; EXEC SQL END DECLARE SECTION;. EXEC SQL CALL SET_CURSOR_ACCOUNT_C1('P'); if (sqlca.sqlcode != 0) prt_sqlc();. EXEC SQL ASSOCIATE LOCATOR( :CRTPROCS_rs_loc ) WITH PROCEDURE PAOLOR2.CRTPROCS;. EXEC SQL ALLOCATE C1 CURSOR FOR RESULT SET :CRTPROCS_rs_loc;. EXEC SQL FETCH C1 INTO :hv_account, :hv_account_name;. EXEC SQL CLOSE C1; #pragma linkage(cfunc, fetchable) #include void cfunc(char parm1[2]) { EXEC SQL BEGIN DECLARE SECTION; char hv_type[2]; EXEC SQL END DECLARE SECTION; strcpy(parm1, hv_type); EXEC SQL DECLARE C1 INSENSITIVE SCROLL CURSOR WITH HOLD WITH RETURN FOR SELECT ACCOUNT, ACCOUNT_NAME FROM ACCOUNT WHERE TYPE = :hv_type FOR UPDATE OF ACCOUNT_NAME; EXEC SQL OPEN C1; } Stored procedure 3. Neue AP Funktionen 3.3 Stored Procedures – Verbesserungen(Was bleibt)

26 26 Jan Stored Procedures und UDF Verbesserungen 3. Neue AP Funktionen LANGUAGE COMPJAVA stored procedures COMPJAVA nutzt HPJ (High Performance Java compiler) VA Java unterstützt keine compiled Java link library files mehr No longer supported in V8 Stattdessen Nutzung der LANGUAGE JAVA -Mit besserer Performance Unterdrücken von DB2-gesteuerten stored procedures Kein CREATE von neuen DB2-established stored procedures in V8 -Nach Entfernen der 'NO WLM ENVIRONMENT' Option SQLCODE -199 Bestehende DB2-established stored procs laufen weiter Nach ALTER PROC auf WLM-managed kein ALTER zurück mehr Empfehlung: Migration aller stored procs auf WLM managed

27 27 Jan Neue Spezialregister 3. Neue AP Funktionen Client information die jeweilige connection über sqleseti, Java, RRS SIGNON CURRENT CLIENT_ACCTNG -- accounting string CURRENT CLIENT_APPLNAME -- application name CURRENT CLIENT_USERID -- client user ID CURRENT CLIENT_WRKSTNNAME -- workstation name Spezialregister für MQTs CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION CURRENT REFRESH AGE Spezialregister für Applikationen CURRENT PACKAGE PATH CURRENT SCHEMA

28 28 Jan SET CURRENT PACKAGESET 3. Neue AP Funktionen Problem: CURRENT SQLID als impliziter Qualifier für dynamic SQL CURRENT SQLID betrifft u.a. die authorization: -CURRENT SQLID muß für dynamic CREATE, ALTER, GRANT REVOKE authorisiert werden -CURRENT SQLID muß eine primary / secondary auth ID sein (außer bei SYSADM / SYSCTRL) Static SQL nutzt deshalb die BIND Option QUALIFIER gilt für unqualified SQL Lösung: SET SCHEMA / CURRENT SCHEMA Spezialregister für dyn SQL CURRENT SCHEMA ist ein Spezialregister mit VARCHAR(128) und demselben Wert wie CURRENT SQLID zum Zeitpunkt der Initialisierung Verlangt SET SCHEMA zum Ändern Kann jeden beliebigen Wert annnehmen (nicht begrenzt auf primary /secondary auth ID wie CURRENT SQLID)

29 29 Jan SET CURRENT PACKAGEPATH 3. Neue AP Funktionen Wozu ?..... Zur Auflösung von packages (collection) Bedeutet für Applikationen, dass sie eine collection list für den DB-Server spezifizieren können, nach der eine Suchreihenfolge vorgegeben ist (ähnlich zu PKLIST im BIND PLAN) DB Server können die Liste durchsuchen und das erste package, das den gesuchten Namen aufweist benutzen Kontrolle für Anwendungsprogramme, die nicht unter einem DB2 Plan laufen Vorteile..... Vermindern des network traffic und Verbesserung der CPU/elapsed time für AP Ermöglicht die Implementierung von nested procedures, user-defined functions ohne Rücksicht auf das rufende runtime environment und erlaubt die Spezifikation mehrerer collections Einfacherer switch zwischen JDBC und SQLJ

30 30 Jan SET CURRENT PACKAGEPATH 3. Neue AP Funktionen USER, CURRENT PACKAGE PATH, und CURRENT PATH können nur EINMAL angegeben werden Man beachte, dass man den bestehenden CURRENT PACKAGE PATH angeben kann und zusätzliche collections vorn / hinten anfügen kann SET :oldCPP = CURRENT PACKAGE PATH; SET CURRENT PACKAGE PATH = CURRENT PACKAGE PATH, prodcoll ; CALL PRODSP (:hv1, :hv2); SET CURRENT PACKAGE PATH = :oldCPP ;

31 31 Jan SET CURRENT PACKAGEPATH - Beispiele 3. Neue AP Funktionen

32 32 Jan Neue ODBC Funktionen Neue AP Funktionen Gemeint ist ODBC für Programme unter UNIX System Services on z/OS (USS) Userid und Passwort Authentikation (validation, nicht nur syntax checking) beim SQLConnect und SQLDriverConnect ODBC Unterstützung für lange Namen (auch in den INI-Files) ODBC Unterstützung für SQL Statements bis zu 2 MB SQLCancel() Support ODBC Unicode Support -Update, insert, delete und fetch von Unicode Daten durch ODBC Applikationsvariable -Unicode Strings innerhalb des ODBC application programming interface (ermöglicht Unicode SQL Statements in der ODBC- Applikation)

33 33 Jan RRSAF Funktionen Neue AP Funktionen Ermöglicht RRSAF Applikationen implicit connections auf DB2 for z/OS zu erkennen und zu nutzen Ähnlich dem implicit connection support in CAF Heute gibt es ausschließlich explicit RRSAF connections Man muß IDENTIFY, CREATE THREAD, SIGNON absetzen, um eine database connection aufbauen zu können Ebenso: TERMINATE THREAD - TERMINATE IDENTIFY um sie zu beenden V8 implicit RRSAF connection eine SQL Statement und IFI Calls reichen aus RRSAF baut die connection auf -Der verwendete Subsystem Name hängt ab von der SSID in DSNHDECP -Der Planname hängt ab vom DBRM, das den ersten SQL Call absetzt -Die Authorization ID ist die des address space oder ACEE (falls vorhanden)

34 34 Jan Neue XML Funktionen Neue AP Funktionen

35 35 Jan 2005 Cast Funktion: – XML2CLOB Scalare Functionen: – XMLELEMENT – XMLATTRIBUTES – XMLFOREST – XMLCONCAT – XMLNAMESPACES Aggregate Funktion: – XMLAGG 3.7 Neue XML Funktionen Neue AP Funktionen Sieben neue built-in functions für XML publishing gibt es in DB2 V8:

36 36 Jan Neue XML Funktionen - Complex XML query example Neue AP Funktionen SELECT VARCHAR( XML2CLOB( XMLElement(NAME "TABLE", XMLATTRIBUTES('1' as "border"), XMLElement(NAME CAPTION, 'Department-Employee Table'), XMLElement(NAME TR, XMLFOREST('Dept No' as TH, 'Dept Name' as TH, 'Emp No' as TH, 'Emp Name' as TH, 'Phone' as TH) ), XMLAGG( XMLCONCAT( XMLELEMENT(NAME TR, XMLELEMENT(NAME TD, XMLATTRIBUTES( X.CNT+1 as "rowspan"), D.DEPTNO), XMLELEMENT(NAME TD, XMLATTRIBUTES( X.CNT+1 as "rowspan"), D.DEPTNAME) ), ( SELECT XMLAGG(XMLElement(NAME TR, XMLForest(EMPNO as TD, FIRSTNME || ' ' || LASTNAME as TD, PHONENO as TD) ) ) FROM DSN8810.EMP E WHERE E.WORKDEPT = D.DEPTNO ) ) ) ) ) ) FROM DSN8810.DEPT D, (SELECT WORKDEPT, COUNT(*) FROM DSN8810.EMP GROUP BY WORKDEPT) X(DEPTNO, CNT) WHERE D.DEPTNO = X.DEPTNO AND D.DEPTNO IN ('A00', 'C01')

37 37 Jan 2005 SELECT E.EMPNO,XML2CLOB( XMLELEMENT ( NAME "EMP", E.FIRSTNME||' '||E.LASTNAME ) ) AS "RESULT" FROM DSN8810.EMP E; EMPNO RESULT CHRISTINE HAAS MICHAEL THOMPSON SALLY KWAN JOHN GEYER SELECT E.EMPNO,XML2CLOB( XMLELEMENT ( NAME "EMP", E.FIRSTNME||' '||E.LASTNAME ) ) AS "RESULT" FROM DSN8810.EMP E; EMPNO RESULT CHRISTINE HAAS MICHAEL THOMPSON SALLY KWAN JOHN GEYER 3.7 Neue XML Funktionen - XMLELEMENT Neue AP Funktionen

38 38 Jan Neue XML Funktionen - XMLATTRIBUTES Neue AP Funktionen SELECT E.EMPNO,XML2CLOB( XMLELEMENT ( NAME "EMP", XMLATTRIBUTES( E.EMPNO, E.FIRSTNME||' '|| E.LASTNAME AS "NAME") ) ) AS "RESULT" FROM DSN8810.EMP E; EMPNO RESULT

39 39 Jan Development Center Neue AP Funktionen Funktionalität Weiterentwicklung des Stored Procedure Builder Unterstützung einer bestimmten Menge von Servern der DB2 Familie Aus der Sicht des mainframe kann man hier stored procedures definieren Verbesserter z/OS support mit speziellen SQL IDs (package owner, build owner, secondary ID und advanced build options) Unterstützung und Entwicklung von SQL und JAVA stored procedures auf dem zSeries Rechner Unterstützung zum Ansehen von live database tables, views, triggers, stored procedures und user-defined functions und mehr....

40 40 Jan Neue AP Funktionen 3.1dynamic scrollable Cursors 3.2 SQL/PL Funktionen 3.3STP und Procedure Verbesserungen 3.4Neue Spezialregister SET Current Schema SET Current PACKAGEPATH 3.5ODBC Verbesserungen 3.6Implizite RRSAF Verbindungen 3.7Neue XML Funktionen


Herunterladen ppt "1 Jan 2005 Neue Funktionen für AE und Applikationsprogramme (DB2-V8_AE_APneu) IBM DB2 V8 for z/OS (*) (*) ist eingetragenes Warenzeichen der IBM International."

Ähnliche Präsentationen


Google-Anzeigen