-
SQL Select für Dateisysteme (Verzeichnisinhalte)
Hallo zusammen,
gibt es ab V7R3 ein SQL Select, mit dem ich Verzeichnisinhalte meiner Dateisysteme ausgeben kann?
Danke für Eure Hilfe und bleibt gesund.
VG Dirk
-
-
Schau Dir doch mal die Tabellen-Funktion IFS_Object_Statistics an:
Die folgende Abfrage bringt liest die Verzeichnisstruktur (incl. Sub-Directories) unter '/home/YourDir1/YourDir2) aus.
Code:
Select *
from Table(IFS_Object_Statistics('/home/YourDir1/YourDir2')) x
Birgitta
-
Hallo xenofob und Birgitta,
Danke für Eure raschen Antworten!
@Birgitta: Was mache ich aber falsch?
Ich sende ab:
Select *
from Tables(IFS_Object_Statistics('/usr/bin/')) x
und erhalte zurück:
Nachrichten-ID . . . . : SQL0104
Nachricht . . . : Token ( ungültig. Gültige Token: FOR USE SKIP WAIT WITH
FETCH LIMIT ORDER UNION EXCEPT OFFSET.
Danke und Gruß, Dirk
-
Select *
from Table (IFS_Object_Statistics('/usr/bin/')) x
funktioniert, gibt aber nur *pointer als pfad / name zurück
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Dies sind LOB-Locaters und können per Locater-Funktionen bearbeitet werden.
https://www.ibm.com/support/knowledg..._uselocat.html
Ggf. kann man auch per substring die Locator's auslesen.
-
Das liegt daran, dass Du mit STRSQL arbeitest und das wurde seit Release 4.5 nicht mehr erweitert!
Verwende ACS (Access Client Solutions) Run SQL Script und schon siehst Du die Werte.
Was die Verarbeitung angeht, so kannst Du bei embedded SQL die Werte auch ganz normal in eine CHAR oder besser VARCHAR Variable übernehmen.
Wenn Du den Inhalt der Dateien benötigst, solltest Du zusätzlich mit GET_CLOB_FROM_FILE oder GET_BLOB_FROM_FILE. Beide bringen einen LOB-Locator zurück. In embedded SQL definierst Du einen LOB-Locator mit SQLTYPE.
Code:
DCL-S MyLobLoc SQLTYPE(CLOB_Locator);
Den LOB-Locator kannst Du dann mit SQL-Funktionen (z.B. SUBSTR oder LOCATE) bearbeiten wie eine alphanumische Variable.
Aber Achtung: LOB Locators können nur unter Commitment Control verwendet werden. (COMMIT/ROLLBACK geben den im Untergrund allocierten Pointer frei)
Birgitta
-
Wow, Danke Euch zusammen für diese wertvollen Infos.
Bleibt gesund, Gruß Dirk
-
Du kannst den pointer auch in ein VARCHAR konvertieren, dann siehst du im STRSQL auch ein Ergebnis.
-
Aber Achtung:
Bei der Umwandlung in CHAR/VARCHAR darf die max. Satzlänge von 32KB immer noch nicht überschritten werden. Daher mein Hinweis, die Daten ggf. per SUBSTRING zu verkürzen damit der Cast in VARCHAR auch nicht zu Fehlern führt.
U.U. musst du die Daten auch in N[VAR]CHAR casten da sie ggf. Unicode (DBCLOB) enthalten.
Similar Threads
-
By mgraskamp in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 31-01-20, 09:08
-
By RPG_KL in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 28-01-19, 06:28
-
By alex61 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 12-07-16, 09:23
-
By harkne in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 23-10-15, 09:36
-
By TARASIK in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 19-09-02, 10:59
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