[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von Fuerchau
    Schau dir die Nachricht mit F1 mal genauer an. Es gibt da detailiertere Hinweise.
    Das habe ich schon mehrfach getan, deshalb ja meine Anfrage hier im Forum.

    F1-Fehlerbeseitigung:

    2 - Den alternativen oder den Bibliotheksnamen im Befehl so ändern, dass der alternative Name keine Kopie des alternativen Namens einer anderen Datei ist.

    Das interpretiere ich so, dass der Name ScannerRueckmeldung als alternativer Name bezeichnet wird. Dieser Name ist auch z.B. in der SYSTABLES vorhanden und kann nicht doppelt vorkommen.

    Stehe ich etwa total auf dem Schlauch?

    Gruß Joe

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    bei SQL Langnamen werden vom System bei Bedarf Kurznamen generiert, nach dem Regelwerk Name = XXXXXyyyyy
    wobei XXXXX die ersten 5 Buchstaben des Langnamens in upper Case sind und yyyyy eine fortlaufende Nummer, startend mit 00001
    In deinem Fall sieht es so aus, dass es bereits eine Datei mit dem Namen SCANN00002 gibt, oder das OS wieder mal spinnt.
    Fazit: SQL nehmen und Langnamen verwenden, oder CPYF und anderen Namen wählen.

    mfg

    Dieter Bender

    Zitat Zitat von Joe
    Das habe ich schon mehrfach getan, deshalb ja meine Anfrage hier im Forum.

    F1-Fehlerbeseitigung:

    2 - Den alternativen oder den Bibliotheksnamen im Befehl so ändern, dass der alternative Name keine Kopie des alternativen Namens einer anderen Datei ist.

    Das interpretiere ich so, dass der Name ScannerRueckmeldung als alternativer Name bezeichnet wird. Dieser Name ist auch z.B. in der SYSTABLES vorhanden und kann nicht doppelt vorkommen.

    Stehe ich etwa total auf dem Schlauch?

    Gruß Joe
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2004
    Beiträge
    923
    Zitat Zitat von BenderD
    ...In deinem Fall sieht es so aus, dass es bereits eine Datei mit dem Namen SCANN00002 gibt, oder das OS wieder mal spinnt.
    Hello,

    wenn er denn nun wirklich den Ursachencode 2 hat.
    2 - Der alternative Name ist ein doppelter alternativer Name für die
    Datenbankdatei &5, die bereits in der Bibliothek &2 vorhanden ist.

    Steht ja dann so im Joblog!?

    k.

  4. #4
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von kuempi von stein
    Hello,

    wenn er denn nun wirklich den Ursachencode 2 hat.
    2 - Der alternative Name ist ein doppelter alternativer Name für die
    Datenbankdatei &5, die bereits in der Bibliothek &2 vorhanden ist.

    Steht ja dann so im Joblog!?

    k.

    Hallo.
    Danke für die rege (An)Teilnahme.


    Der neue Name SCANN00002 existiert definitiv nicht im gesamten System.

    Hier nochmal die Fehlermeldung:

    Nachricht . . . : Alternativer Name für Datei SCANN00002 nicht zulässig. Ursache . . . . : Es wurde versucht, die Datenbankdatei SCANN00002 mit dem alternativen Namen SCANNERRUECKMELDUNG zu erstellen, zu ändern oder in die
    Bibliothek xxx zu übertragen.


    Ich werde das Kopieren der Tabelle mit SQL durchführen.

    Gruß
    Joe

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    Wieso nochmal? ein typisches Beispiel dafür, dass eine klarere Problembeschreibung direkt zur Lösung geführt hätte.

    mfg

    Dieter Bender

    @Baldur: Solange mir keiner dokumentiert zeigt, dass das ein Feature ist, ist das für mich ein Bug!!!

    Zitat Zitat von Joe
    Hier nochmal die Fehlermeldung:

    Nachricht . . . : Alternativer Name für Datei SCANN00002 nicht zulässig. Ursache . . . . : Es wurde versucht, die Datenbankdatei SCANN00002 mit dem alternativen Namen SCANNERRUECKMELDUNG zu erstellen, zu ändern oder in die
    Bibliothek xxx zu übertragen.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da native OS-CMD's nur 10-stellige Objektnamen kennen, kann auch nur mit 10-stelligen Namen umgegangen werden.

    Da der ALIAS der Datei länger als 10 ist, kann sich das OS keinen Namen "ausdenken", da der Benutzer ja die Namen vorgibt.
    Wo soll also CPYF einen langen Namen generieren, wenn doch normalerweise die Kopie ein weitgehend identisches Objekt ergibt ?
    Deshalb wird der CPYF abgelehnt und man muss dann halt den "Create as Select" verwenden.
    Hier gilt wieder die SQL-Konvention, die aus dem langen Namen wieder einen 10-stelligen Objektnamen generiert.

    Es ist ist halt schon ein Problem, mit verschieden Methoden das selbe Objekt zu bearbeiten.

    Dies gilt übrigens auch für TABLE/VIEW/INDEX-Objekte, die ich anschließend mit RecordLevel-Access verarbeiten will, wo diese Arten doch für SQL vorgesehen sind.

    "Es geht doch" ist für mich in diesem Fall kein Argument.
    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
    Mar 2002
    Beiträge
    5.365
    Hallo,

    jede PF hat einen 10 stelligen Namen und wenn ich einen CPYF mache gebe ich selbigen als Quelldatei an und als Zieldatei ebenfalls einen, der maximal 10 stellig ist, da gibt es keinerlei Grund einen Langnamen zu erfinden, nur weil die Quelldatei zufällig einen hatte!!!

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Da native OS-CMD's nur 10-stellige Objektnamen kennen, kann auch nur mit 10-stelligen Namen umgegangen werden.

    Da der ALIAS der Datei länger als 10 ist, kann sich das OS keinen Namen "ausdenken", da der Benutzer ja die Namen vorgibt.
    Wo soll also CPYF einen langen Namen generieren, wenn doch normalerweise die Kopie ein weitgehend identisches Objekt ergibt ?
    Deshalb wird der CPYF abgelehnt und man muss dann halt den "Create as Select" verwenden.
    Hier gilt wieder die SQL-Konvention, die aus dem langen Namen wieder einen 10-stelligen Objektnamen generiert.

    Es ist ist halt schon ein Problem, mit verschieden Methoden das selbe Objekt zu bearbeiten.

    Dies gilt übrigens auch für TABLE/VIEW/INDEX-Objekte, die ich anschließend mit RecordLevel-Access verarbeiten will, wo diese Arten doch für SQL vorgesehen sind.

    "Es geht doch" ist für mich in diesem Fall kein Argument.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dieter, da gehe nicht ganz mit dir überein.
    Der lange Name ist nun Bestandteil des Dateiobjektes (sonst könnte Save/Restore) nicht funktionieren.
    CRTDUPOBJ kann das im Übrigen auch nicht.

    Die Erklärung liefert übrigens der CPYF gleich mit:

    Datei erstellen (CRTFILE) - Hilfetext

    Gibt an, wann dieser Befehl zum Kopieren von einer physischen oder
    logischen Datei benutzt wird, und ob eine physische Datei erstellt wird,
    um die Daten zu empfangen, wenn die angegebene Nach-Datei nicht
    vorhanden ist. Ist die Nach-Datei eine DDM-Datei (Management für
    verteilte Daten), die eine nicht vorhandene ferne Datei kennzeichnet,
    wird die Nach-Datei auf dem Zielsystem erstellt.

    *NO
    Beim Starten des Befehls muss die Zieldatei bereits vorhanden sein.
    Eine physische Datei zum Empfangen der Daten wird nicht erstellt.

    *YES
    Ist die Zieldatei nicht vorhanden, wird eine physische Datei mit dem
    bei Parameter Zieldatei (TOFILE) angegebenen Namen erstellt. Ist die
    Ausgangsdatei eine SQL-Tabelle, eine SQL-Sicht oder ein SQL-Index
    mit einem Feld der Art benutzerdefiniert, DataLink oder LOB (Large
    Object), wird eine physische Datei erstellt, die eine SQL-Tabelle
    ist. In allen anderen Fällen wird als Zieldatei eine physische
    Datenbankdatei erstellt, die keine SQL-Tabelle ist. Neben den
    normalen Gültigkeitsprüfungen beim Kopieren müssen folgende
    Sonderbedingungen beim Kopiervorgang zum Erstellen einer Zieldatei
    erfüllt sein:
    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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    also ich kann da nirgends eine Einschränkung entdecken, warum das nicht gehen soll und von Langnamen oder ähnlichem steht da ebenfalls nix...


    Zitat Zitat von Fuerchau
    Dieter, da gehe nicht ganz mit dir überein.
    Der lange Name ist nun Bestandteil des Dateiobjektes (sonst könnte Save/Restore) nicht funktionieren.
    CRTDUPOBJ kann das im Übrigen auch nicht.

    Die Erklärung liefert übrigens der CPYF gleich mit:

    Datei erstellen (CRTFILE) - Hilfetext

    Gibt an, wann dieser Befehl zum Kopieren von einer physischen oder
    logischen Datei benutzt wird, und ob eine physische Datei erstellt wird,
    um die Daten zu empfangen, wenn die angegebene Nach-Datei nicht
    vorhanden ist. Ist die Nach-Datei eine DDM-Datei (Management für
    verteilte Daten), die eine nicht vorhandene ferne Datei kennzeichnet,
    wird die Nach-Datei auf dem Zielsystem erstellt.

    *NO
    Beim Starten des Befehls muss die Zieldatei bereits vorhanden sein.
    Eine physische Datei zum Empfangen der Daten wird nicht erstellt.

    *YES
    Ist die Zieldatei nicht vorhanden, wird eine physische Datei mit dem
    bei Parameter Zieldatei (TOFILE) angegebenen Namen erstellt. Ist die
    Ausgangsdatei eine SQL-Tabelle, eine SQL-Sicht oder ein SQL-Index
    mit einem Feld der Art benutzerdefiniert, DataLink oder LOB (Large
    Object), wird eine physische Datei erstellt, die eine SQL-Tabelle
    ist. In allen anderen Fällen wird als Zieldatei eine physische
    Datenbankdatei erstellt, die keine SQL-Tabelle ist. Neben den
    normalen Gültigkeitsprüfungen beim Kopieren müssen folgende
    Sonderbedingungen beim Kopiervorgang zum Erstellen einer Zieldatei
    erfüllt sein:
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Naja, lange Rede kurzer Sinn (auch wenns nicht da explizit steht) werden sämtliche Aliase mit kopiert und beim Alias des Dateinamen scheitert das System.
    Vorschrift ist hier halt: kopiere mit SQL.

    Es gibt leider nur eine Regel, wie lange Namen in kurze übersetzt werden und nicht wie vorhandene lange Namen ggf. vom System umbenannt werden sollen.
    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

  11. #11
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von BenderD
    Hallo,

    Wieso nochmal? ein typisches Beispiel dafür, dass eine klarere Problembeschreibung direkt zur Lösung geführt hätte.

    mfg

    Dieter Bender

    @Baldur: Solange mir keiner dokumentiert zeigt, dass das ein Feature ist, ist das für mich ein Bug!!!

    Sorry, ich war der Meinung mein Problem ausführlich genug beschrieben zu haben.

    Nochmal vielen Dank für die Problemlösung.

    Gruß

    Joe

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dies ist kein BUG sondern leider so korrekt.
    Der CPYF kommt mit langen Namen nicht zurecht, da diese immer wieder mitkopiert werden.
    Z.B. das DDS-Keyword ALIAS erlaubt lange Feldnamen, die beim Erstellen auch kopiert werden. Auf Feldbebene ist das aber egal.
    Auf Dateiebene hat man auch keinen Einfluss auf den langen Namen und deshalb wird der CPYF abgelehnt.

    Lösung:
    a) CPYF in eine andere Lib, wo der lange Name nicht existiert
    b) per SQL kopieren

    CREATE TABLE ScannerRueckmeldung2
    as (select * from ScannerRueckmeldung)
    with data
    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. CPYF Fehler handling
    By RLPforum in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 05-07-06, 14:04
  2. 30000 CPYF am Tag!?
    By V_P in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 14-09-05, 11:04
  3. Problem beim Kopieren von Datenbanktabellen
    By schojo in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 17-05-05, 10:24
  4. CPYF
    By ASMaus in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-02-05, 13:15
  5. CPYF
    By Liebhoff in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-02-03, 08:35

Berechtigungen

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