-
Moin *all
Hallo zusammen,
irgendwie ist heute nicht mein Tag.
Ich habe folgenden SQL String
/home/USRIFS/Artikel_Kunde.xls
Ich möchte jetzt den Dateinamen extrahieren.
Das Ergebnis soll sein:
Artikel_Kunde.xls
Ich brauche also den letzten /
Ab dieser Position die restlichen Zeichen
Das will mir mit SQL einfach nicht gelingen.
Hat jemand einen Tipp?
Gruß
Michael
-
Falls du IBM i 7.3 hast kannst du es mit den neuen Regex-Funktionen lösen:
Code:
VALUES (regexp_substr('/home/USRIFS/Artikel_Kunde.xls', '\w+(?:\.\w+)*$') )
lg Andreas
-
Hi Andreas,
danke für den Tipp
Leider haben wir noch V7R2
-
Dann wäre eine kleine SQL Funktion am schnellsten.
-
Folgendes SQL bringt bei mir das gewünschte Ergebnis:
SELECT
RIGHT(
'/home/USRIFS/Artikel_Kunde.xls'
,LENGTH('/home/USRIFS/Artikel_Kunde.xls') - LOCATE_IN_STRING('/home/USRIFS/Artikel_Kunde.xls','/',-1)
)
FROM sysdummy1
;
-
Und ab welchem Release/TR hast du LOCATE_IN_STRING?
-
7.1: SF99701 Level 38
7.2: SF99702 Level 9
-
Also wir haben auch 7.2 und können die RegExp-Funktion in SQL nutzen ==> Und sie funktioniert
-
Stimmt ...
IBM i 7.1 TR9
IBM i 7.2 TR1
-
Wow, ...
@andreaspr
ist REGEX auf der i identisch mit REGEX in anderen Sprachen oder gibt es da Syntax unterschiede?
Hast du eine link in dem REGEX auf i erklährt wird?
oder eine kurze Übersetzung deiner Lösung?
Danke
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Es gibt schon in diversen sprachen leichte Unterschiede, aber in der Praxis konnte ich diese großteils bis jetzt vernachlässigen.
Eine hübsche Doku findest du hier:
https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
Und hier auch noch eine Zusammenfassung der erlaubten Operatoren und deren Erklärungen:
https://www.ibm.com/support/knowledg...xp_likecontrol
Im Grunde kann man schon Regex verwenden ohne sich im Detail damit auskennen zu müssen.
Beispiel:
Du willst ein Passwortcheck machen
* min. 8 Zeichen
* max. 20 Zeichen
* min. 1 Großbuchstabe
* min. 1 Kleinbuchstabe
* min. 1 Zahl
* min. 1 Sonderzeichen
Du gehst auf google und findest einen Haufen von "Patterns", verwendest ihn und fertig. Du ersparst dir ein ganzes Programm dafür zu schreiben.
Ich verwende Regex mittlerweile fast überall (Notepad++, SQL, RPG, RDi, shell, ...).
Es wird immer mehr unterstützt und erleichtert vieles.
lg Andreas
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