[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365

    Cpyf und alternativer Tabellenname

    Hallo Forum.

    Ich möchte eine Tabelle mit neuem Namen in die gleiche Bibliothek kopieren. Die Tabelle wurde mit Create Table erstellt
    und hat einen Namen > 10 Stellen.

    Name: ScannerRueckmeldung
    Von AS400 vergeben: SCANN00001


    Beim CPYF muss ich mit dem von der AS400 erzeugten Namen (SCANN00001) arbeiten.
    Wie ändere ich dabei gleichzeitig den Alternativen Tabellennamen (Originalname aus Craete Table) ?

    Gruß Joe

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Frage verstehe ich so nicht ganz.
    Die Tabelle/PF wird mit dem Namen erstellt, der beim CPYF angegeben wird.
    Einen alternativen SQL-Namen gibt es dabei nicht.

    Ggf. kannst du das ja auch per SQL erledigen:

    create table as
    select ....
    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

  3. #3
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von Fuerchau
    Die Frage verstehe ich so nicht ganz.
    Die Tabelle/PF wird mit dem Namen erstellt, der beim CPYF angegeben wird.
    Einen alternativen SQL-Namen gibt es dabei nicht.

    Ggf. kannst du das ja auch per SQL erledigen:

    create table as
    select ....

    Hallo.

    Danke für die schnelle Antwort.
    Hier nochmal die Copy Parameter:

    Datei kopieren (CPYF)



    Ausgangsdatei . . . . . . . . . > SCANN00001
    Bibliothek . . . . . . . . . . > test
    Zieldatei . . . . . . . . . . . > SCANN00002
    Bibliothek . . . . . . . . . . > test
    Von Teildatei . . . . . . . . . *FIRST
    Nach Teildatei oder Kennsatz . .*FIRST
    Sätze ersetzen od. hinzufügen . > *ADD
    Datei erstellen . . . . . . . . > *YES

    Fehler: CPF327E Alternativer Name für Datei SCANN00002 nicht zulässig.

    Als Ausgangs-u.Zieldatei muss ich den obigen Namen verwenden. Oder habe ich die Möglichkeit, hier den langen Originalnamen einzugeben?

    Oder geht das mit einem anderen Befehl (ausser SQL)

    Gruß
    Joe

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Schau dir die Nachricht mit F1 mal genauer an. Es gibt da detailiertere Hinweise.
    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

  5. #5
    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

  6. #6
    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/

  7. #7
    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.

  8. #8
    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

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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

  10. #10
    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/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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

  12. #12
    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/

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
  •