DB2 z/os generieren 2 zeiliger SQL-Anweisungen
- Dieses Thema hat 2 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 18 Jahre, 4 Monaten vonMitglied.
- AuthorPosts
- 18. Januar 2005 um 7:10 Uhr #2499
Hallo, liebes Forum,
weiß jemand einen Trick, wie ich mittels SPUFI mehrzeilige SQL-Anweisungen generieren kann? Das generiertes Ergebnis sieht zwar gut aus, läßt sich aber nicht abarbeiten, da ab Spaltenposition 72? der Text abgeschnitten wird. Und Zeilenumbrüche per Hand einzuarbeiten kann ja auch nicht die Lösung sein.
grübelnd Werner
18. Januar 2005 um 9:46 Uhr #2960Leider kenne ich keine Db2-seitige Lösung.
Vielleicht hilft Dir diese REXX weiter:
 /* rexx */                         Â
 "ISREDIT MACRO"                       Â
 address isredit                       Â
 "cursor = .zlast 1"                     Â
 "(maxl) = cursor"                      Â
 curl = 0                          Â
 do i = 1 to maxl                      Â
  curl = curl + 1                     Â
  "(data) = line" curl                   Â
  if substr(data,73) = “ then iterate           Â
  "cursor = " curl " 1 "                  Â
  "c 1 2 P’==‘ ‚–‚"                    Â
  do while( data ^= “)                  Â
    do j = 72 to 1 by -1 while (substr(data,j,1) ^= ‚ ‚ ) Â
    end                          Â
    if j=0 then j=72                   Â
    datlin = ““ substr(data,1,j)  ““         Â
    "LINE_AFTER " curl "  = " datlin           Â
    curl = curl + 1                    Â
    data = substr(data,j+1)                Â
  end;                           Â
 end                             ÂSie müsste den Text entsprechend umbrechen.
Einfach in die SYSEXEC mit reinhängen und als EDIT-MACRO ausführen18. Januar 2005 um 15:47 Uhr #3285Hallo Werner,
hier noch ein Trick bestehend aus SLQ und SORT den ich oft verwende:
1. UNION ALL verwenden
Select ZEILE1 , !! ‚–‚ !! KEY !! ’01‘ FROM T
UNION ALL
Select ZEILE2 , !! ‚–‚ !! KEY !! ’02‘ FROM T
UNION ALL
etc.2. Der Key muss das zu generierende SQL-Statement eindeutig identifizieren.
3. Sorge dafür das — !! KEY !! ’99‘ immer in der selben Spalte landet (auch bei Zeile2 etc.). Rechts von den der SQL-Syntax
4.
Im EDITOR oder externer SORT-STEP
SORT 73 80 und die Zeilennummer (Angenommen hier steht der Key und Zeilennummer)Gruß Klaus
- AuthorPosts
You must be logged in to reply to this topic.