elektromyk
Goto Top

Plsql Anzahl der Ergebnisse "filtern" bzw. limitieren

Hallo,
kennt sich jemand von Euch in plsql aus?

Ich habe eine Datenbank hier aus dem Bestellwesen.
Leider kann ich mir nur 100MB daten auslesen lassen in unserem Statistik Tool.

Ich bekomme es zwar hin, dass er mir nur soviele Datensätze anzeigt, dass es unter 100MB hat, aber dann fehlt mir der rest.

Aktuell habe ich diese Daten eingetragen:

select a.artikelnummer, a.herstellerartikelnummer, b.EK, b.VK, b.VK2, b.VK2 
from art.infos a, art.preise b
and a.kunr='123456'  
order by a.arnr

Hiermit begrenze ich die Ergebnisse:
fetch next 1000 rows only;

Weiss jemand wie ich es hin bekomme, dass mir zb. bei 9.000 Ergebissen bzw. "rows", der mir das versetzt anzeigt.

also zuerst 0-1000
dann 2000-3000
4000-5000
usw
bis 8000-9000?

Das bekomm ich einfach nicht hin.
In diesen Tausender Schritte bin ich immer unter 100MB Datenexport Grösse.. das würde gehen.
Vielen Dank für jeden Tipp!

Content-ID: 4883776060

Url: https://administrator.de/contentid/4883776060

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

141986
141986 07.12.2022 aktualisiert um 15:11:28 Uhr
Goto Top
Hi,

LIMIT 50, 10;
würde nur Reihe 51 bis 60 ausgeben.
Hier könntest Du die eine Logik zusammenfummeln.
Evtl. sowas wie
LIMIT 1000, 1000;
-Sollte dann nur 1001 - 2000 ausgeben. ACHTUNG ungetestet.

hth

Grüße

Edita: keinen Schimmer ob PLSQL das überhaupt so kann. (Limit kennt es zumindest)
it-frosch
it-frosch 07.12.2022 aktualisiert um 16:43:59 Uhr
Goto Top
Hallo ElektroMYK,

zuerst wertest du aus wieviele Artikelnr mit dem/der selben Buchstabe/Zahl beginnen.

select left(a.artikelnummer), count(*) from art.infos a group by a.artikelnummer;

Dann gehst du tiefer ... bis du sagen kannst:

select a.artikelnummer, a.herstellerartikelnummer, b.EK, b.VK, b.VK2, b.VK2 
from art.infos a, art.preise b
and a.kunr='123456'   
and a.artikelnummer between 'erste_Artikelnr_des_blocks' and 'letzte_Artikelnr_des_blocks'  
order by a.arnr

Update
Lese dir doch nur die Artikelnummern aus. Das sollte < 100 MB sein. Ist ja nur ein Textfeld.
Dann siehst du wieviele Aritikel du hast und kannst nach Bereichen.


Grüße vom it-frosch
MadMax
Lösung MadMax 07.12.2022 um 16:47:57 Uhr
Goto Top
Hallo ElektroMYK,

zu Deiner Begrenzung gibst Du noch einen offset an, der überspringt Dir dann diese Anzahl an Zeilen:
statt
fetch next 1000 rows only
verwendest Du
offset XXXX rows fetch next 1000 rows only
Wobei XXXX dann 0, 1000, 2000, ... einnimmt.

Gruß, Mad Max
ElektroMYK
ElektroMYK 08.12.2022 um 08:12:29 Uhr
Goto Top
@MadMax das ist genau das was ich brauche. RIESEN GROSSES DANKE!!!!!!
it-frosch, vielen Dank auch an Dich das wäre sicher so auch gegangen.
0xFFFF diesen Befehl kennt mein plsql Programm leider nicht. danke trotzdem für den Denkansatz.

War gestern mein erster Beitrag hier und hätte nicht gedacht, dass mir so schnell geholfen wird.
Danke!!!!!
141986
141986 08.12.2022 um 08:18:17 Uhr
Goto Top
0xFFFF diesen Befehl kennt mein plsql Programm leider nicht
das hatte ich befürchtet face-sad

War gestern mein erster Beitrag hier und hätte nicht gedacht, dass mir so schnell geholfen wird.
so soll es doch auch sein. face-smile

Alles gute Dir, bis zum nächsten Mal,

VG