View Full Version : Create Tabl/CPYF
Hallo,
ich erstelle/Kopiere mir eine Workfile in die Qtemp.
Die Orginaldatei hat aber ein Keyfeld, welches ich nicht brauche.
Ist es möglich die Keyfelder zu entfernen, habe es auch schon mit Sql Create Table versucht.
CPYF FROMFILE(HOMDTA/ZPTOPT)
TOFILE(QTEMP/QWRKF)
FROMMBR(*FIRST)
TOMBR(*FIRST)
MBROPT(*REPLACE)
CRTFILE(*YES)
FMTOPT(*NOCHK)
Gruß
Tarki
Der CPYF erstellt eine genaue Kopie der Felder aber ohne Index.
Benötigst du nicht alle Felder kannst du das per SQL erledigen:
create table as
(select f1, f2, f3 from mytable)
with data
Hallo Fuerchau,
mein Problem ist es das ein Keyfeld eine fortlaufende Nummer ist, die ich aber manchmal mehrere Sätze mit der gleichen Nummer belegen möchte.
Bin ich da ganz auf dem Holzweg?
Gruß
Wie Baldur geschrieben hat:
create table as DeineDatei
(select dec(0, 7, 0) as KeyNr, f1, f2, f3 from mytable)
with data
Dann hast due eine Datei mit Key, 7 0 und die Felder f1, f2 und f3
in die Keynr kannst du schreiben was du willst
Robi
Wenn ich von deinem ersten Post ausgehe, möchtest du eine temporäre Tabelle, die nicht alle Felder der Quelltabelle enthalten soll.
Dies geht wirklich am einfachsten mit obigem Create Table.
Du kannst dabei natürlich auch neue Felder dazuerfinden.
Wie Baldur geschrieben hat:
create table as DeineDatei
(select dec(0, 7, 0) as KeyNr, f1, f2, f3 from mytable)
with data
Dann hast due eine Datei mit Key, 7 0 und die Felder f1, f2 und f3
in die Keynr kannst du schreiben was du willst
Robi
Hallo,
Dec(0, 7, 0):
für was steht eigentlich die erste Null?
Tarki
mein Problem ist es das ein Keyfeld eine fortlaufende Nummer ist, die ich aber manchmal mehrere Sätze mit der gleichen Nummer belegen möchte.
(die 1. null muß in hochkomma)
damit erzeugst du ein 7 stelliges numerisches Feld mit 0 um später nach deinen kriterien die Nr hinzu zu fügen
Robi
Da muss nix in Hochkomma.
Wobei mir die genaue Aufgabenstellung nun immer noch nicht klar ist.
Die Aufgabenstellung war das eine neue detailreichere Statistik erwünscht war.
Ein Uralt-Programm aus dem Jahre 88 befüllt diese Datei aber genau nur mit einem Satz.
Nun gibt es aber zu einer Buchung, mehrere Sätze, und 5 neue Felder.
Ich dachte mir, wieso alles neu erfinden, da ja viele gar nicht mehr wissen, ob das Feld überhaupt gebraucht wird, bzw. nach einem halben Jahr auf der Matte stehen und frage wieso das Feld es nicht mehr vorhanden ist.
Die befüllte Datei wird ja von anderen Pgm auch benutzt.
Gruß
Tarki
Tut mir leid, aber diese Aufgabenbeschreibung kann ich mit obigem Copy noch nicht in Einklang bringen.
Du kannst natürlich eine neue Datei erstellen (per DDS/SQL) und beim CPYF ... FMTOPT(*MAP *DROP) nur die passenden Felder aus Datei1 in Datei2 kopieren.