PDA

View Full Version : SQL-Funktionen STUFF, LISTAGG, ...



mahones
06-07-17, 15:26
Hallo zusammen,

einer meiner Kollegen würde gerne SQL-Funktionen in unseren RPG-Programmen verwenden, die er von Oracle her kennt.
Namentlich sind dieses
<style type="text/css"> body { margin: 0 0 0 0; padding:0 0 0 0 } td,div { font-family:Arial;font-size:10pt;vertical-align:top } /* Copyright IBM Corp. 2013 All Rights Reserved. */ body { margin: 0 0 0 0; padding:0 0 0 0; overflow:hidden; } .transcript { background-color:#d2d2d2; } .messageBlock { padding-left:10px; padding-right:10px; margin-bottom:3px } .message { padding-left:20px; margin-left:95px; word-wrap:break-word; white-space:-moz-pre-wrap; _white-space:pre; white-space:pre-wrap;} .messageCont { padding-left:20px; margin-left:95px; word-wrap:break-word; white-space:-moz-pre-wrap; _white-space:pre;white-space:pre-wrap;} .other { font-size:11px;color:#1970b0;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .myself { font-size:11px;color:#222222;font-style:normal;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont { font-size:8px;text-align:right; color:#1970b0;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .myselfCont { font-size:8px;text-align:right; color:#222222;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .system { font-size:11px; word-wrap:break-word;color:#da8103;font-style:normal;font-weight:normal; white-space:-moz-pre-wrap; _white-space:pre;white-space:pre-wrap; } .showTimestamp { padding-left:20px; font-size:11px; float:right; color:#999999;font-style:normal;font-weight:normal; } .other1 { font-size:11px; color:#ba006e;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont1 { font-size:8px;text-align:right; color:#ba006e;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other2 { font-size:11px; color:#007670;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont2 { font-size:8px;text-align:right; color:#007670;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other3 { font-size:11px; color:#3b0256;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont3 { font-size:8px;text-align:right; color:#3b0256;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other4 { font-size:11px; color:#00512b;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont4 { font-size:8px;text-align:right; color:#00512b;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other5 { font-size:11px; color:#a91024;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont5 { font-size:8px;text-align:right; color:#a91024;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other6 { font-size:11px; color:#b8471b;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont6 { font-size:8px;text-align:right; color:#b8471b;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .other7 { font-size:11px; color:#7f1c7d;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; } .otherCont7 { font-size:8px;text-align:right; color:#7f1c7d;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; } .highlight { background-color:#bed6f8; } .datestamp { padding-right:0px; font-size:11px; cursor:default; margin-bottom:3px; background-color:#c0c0c0; width:100%; float:left; text-align:right; color:#ffffff; font-weight:bold; font-style:italic; } #chatAlert { float:left; border-bottom:1px solid #E8D091; padding:6px; width:100%; color:#A5754C; } #chatAlertImage { float:left; } #chatAlertText { float:left; margin-left:6px; margin-right:10px;} #chatAlertClose { float:right; margin-right:10px; padding-right:6px; margin-top:0px; } #chatAlertText a { color:#A5754C; } #chatAlertText a:hover { color:#A5754C; text-decoration:none; } .tsDisplay { display:block }.dsDisplay { display:none }</style> - STUFF
- FOR XML PATH (gehört, glaube ich, zu STUFF?)
- LISTAGG

Er meinte nun, dass das auf der IBMi nicht funktioniert (wir haben V7R1 im Einsatz).
Ich bin froh, dass meine SELECT-Anweisungen mit SQL funktionieren und kann dazu gar nix sagen, bot ihm aber an, dass ich die Frage mal hier stelle.

Sind das spezielle Funktionen für Oracle-SQL-Server, oder gibt es bei "uns" eine andere Syntax, oder sollten wir ein paar Tage warten, bis wir V7R3 auf dem System haben?

Danke euch!

PS: warum kann ich (nur in diesem Beitrag) nicht scrollen? Auf mehreren PC, Mac, etc. versucht...

B.Hauser
06-07-17, 15:47
LISTAGG wurde mit dem letzten TR für Release 7.2 und 7.3 bereitgestellt.
STUFF sollte der skalaren Funktion INSERT entsprechen.
XML-Support ist wird seit Release 7.1 unterstützt. XMLGROUP könnte an dieser Stelle für einfach geschachtelte SQL-Statements weiterhelfen.

Die aktuelle SQL Referenz befindet sich hier:
IBM i Version 7.3 Database DB2 for i SQL-Reference (https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzpdf.pdf?view=kc)
Für den XML-Support gibt es zusätzlich noch ein weiteres Dokument:
IBM i Version 7.3 Database SQL XML Programming (https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzasp/rzasppdf.pdf?view=kc)

Birgitta