[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2007
    Beiträge
    68

    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

  2. #2
    Registriert seit
    Apr 2019
    Beiträge
    43

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Feb 2007
    Beiträge
    68
    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

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    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!)

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Feb 2007
    Beiträge
    68
    Wow, Danke Euch zusammen für diese wertvollen Infos.

    Bleibt gesund, Gruß Dirk

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Du kannst den pointer auch in ein VARCHAR konvertieren, dann siehst du im STRSQL auch ein Ergebnis.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL SELECT auf MS-SQL Datenbank
    By mgraskamp in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-01-20, 10:08
  2. SQL Select mit Parameter
    By RPG_KL in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 28-01-19, 07:28
  3. SELECT INTO .....
    By alex61 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 12-07-16, 10:23
  4. SQL / Select auf LF / Optimizer
    By harkne in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 23-10-15, 10:36
  5. SQL Select
    By TARASIK in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-09-02, 11:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •