-
Ist zwar nicht so schön: Aber du kannst ja die 3 Einzelfelder in der LF deklarieren und dann im RPG beim Positionieren dein Datum zerlegen und mit einer Keylist zugreifen. (Aber ich denke, das war dir bereits klar)
Dieter
-
Jou, Dieter, das ist mir klar - der Mensch ist aber faul , Ich wollte mir das Leben einfach leichter machen...
Danke für Eure Bemühungen.
-
Sofern Du auf Release 6.1 oder höher bist, kannst Du einen SQL-Index mit einem zusätzlichen verketteten Schlüssel-Feld definieren und diesen Index im Anschluss (wie jede geschlüsselte logische Datei) mit native I/O verarbeiten.
Code:
CREATE INDEX YourSchema.YourIndex
ON YourFile.YourTable
( DIGITS ( YOURYEAR ) CONCAT DIGITS ( YOURMONTH ) CONCAT DIGITS ( YOURDAY ) AS DATECHAR ASC )
RCDFMT TESTDATEF ADD ALL COLUMNS ;
Birgitta
-
Danke, Birgitta - wäre schön mit dem Index, aber die Indexerstellung bei 28 GB kann ziemlich lange laufen, muss ich es überlegen.
-
Wenn du eine LF mit Key erstellst, braucht das aber auch doch seine Zeit ?
Gruß Ronald
-
Ich werde es zuerst in einer Testumgebung ausprobieren, thanks.
-
Die einmalige Zeit der Indexerstellung steht ggf. der Summe der eingesparten Laufzeiten gegenüber. Dabei spielt die Größe des Index keine Rolle.
-
Ich habe eine Sache dabei vergessen - die Datumsfelder kann ich nur unter bestimmten Bedigungen aus einer Stelle rausschneiden - also ein Index für die ganze Datei entfällt; man kann kein "where" im Index haben. Sonst wäre es richtig so:
CREATE INDEX TEST/TESTIDX
ON TEST/TESTPF
( (SUBSTR(TEXT, 25, 4)) CONCAT
(SUBSTR(TEXT, 22, 2)) CONCAT
(SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )
RCDFMT TESTPFF1 ADD ALL COLUMNS
Habe ich mit einer vorselektierten Test Datei ausprobiert.
-
CREATE INDEX TEST/TESTIDX
ON TEST/TESTPF
( (SUBSTR(TEXT, 25, 4)) CONCAT
(SUBSTR(TEXT, 22, 2)) CONCAT
(SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )
WHERE ...........
RCDFMT TESTPFF1 ADD ALL COLUMNS
-
WHERE-Bedingungen sind bei Indices erlaubt.
Wie sieht denn Deine Syntax mit der WHERE-Bedingung aus?
Birgitta
-
Hallo Birgitta,
Es könte so ausehen (ausprobiert):
CREATE INDEX TEST/TESTIDX1
ON TEST/TESTKOPF
(DIGITS (SUBSTR(TEXT, 21, 4)) CONCAT
DIGITS (SUBSTR(TEXT, 18, 2)) CONCAT
DIGITS (SUBSTR(TEXT, 15, 2)) AS DATECHAR ASC )
WHERE POSSTR(TEXT, 'DISPONIERT') > 0
and SATZ_KZ = 'STATI'
and LIEFNR < 990000000
RCDFMT TESTKOPFF1 ADD ALL COLUMNS
- aber wie kann diesen Index nutzen ? Direkt selektieren geht damit nicht.
-
Ich dachte Du wolltest mit native I/O und nicht mit SQL zugreifen!
Native I/O kann SQL-Indices wie jede geschlüsselte Datei verarbeiten.
(In SQL kann/darf man einen Index nicht direkt angeben! Der Optimizer sucht sich den Zugriffspfad)
Birgitta
Similar Threads
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 27-01-22, 12:41
-
By AS400.lehrling in forum Intern - Hilfe - Feedback - Tests-Forum
Antworten: 4
Letzter Beitrag: 20-10-15, 20:24
-
By H.V in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 20-09-02, 16:00
-
By hs in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 14-02-02, 06:30
-
By Stefan_R in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-01-02, 16:08
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks