[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2010
    Beiträge
    83

    Fehlermeldung SQL0420 bei Abfrage an AS400

    Hallo,
    V5R3, ASP.NET, WinXP

    beim Absetzen einer Abfrage an die AS400 erhalte ich folgende Fehlermeldung:
    SQL0420 - Zeichen in CAST-Argument ungültig.

    Aufbau:
    Spalte SPSCHL alphanumerisch Länge 10

    BeispielTab:

    SPSCHL
    E000
    E001
    E400
    E401
    E800
    ...
    E999

    Abfrage:
    SELECT MIN(RIGHT(SPSCHL, 9) + 1) AS NEW_SPSCHL
    FROM SERVER.SWTEST.BSSP00
    WHERE (SPFNAM = '$FAXEKV') AND ((RIGHT(SPSCHL, 9) + 1) NOT IN
    (SELECT RIGHT(SPSCHL, 9) AS Expr1
    FROM SERVER.SWTEST.BSSP00 BSSP00_1))

    Hintergrund ist es die Lücken aufzufüllen. Die Spalte SPSCHL ist kein Primary Key. Ich extrahiere für die Spalte SPSCHL nur die Nummern - das erste Zeichen in dieser Spalte ist ein Buchstabe, der in dieser Abfrage erst einmal unrelevant ist.
    Wie formuliere ich die Abfrage richtig, damit der ODBC-Treiber die Abfrage übersetzen kann?

    Danke und Gruss
    Tobias
    Last edited by padawan; 18-05-10 at 10:02. Grund: Fehlermeldung SQL0204

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Mit Zeichen läßt sich schlecht rechnen:

    RIGHT(SPSCHL, 9) + 1

    Hier musst du den Wert noch in eine Zahl umwandeln:

    dec(RIGHT(SPSCHL, 9), 9, 0) + 1
    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
    Registriert seit
    Jan 2010
    Beiträge
    83
    Hier musst du den Wert noch in eine Zahl umwandeln:

    dec(RIGHT(SPSCHL, 9), 9, 0) + 1
    Der ODBC-Treiber erkennt "dec" nicht und meckert mit Fehlermeldung:
    SQL0204:
    ERROR 42502 IBM iSeries Access ODBC-Treiber DB2 UDB SQL0204 - dec der Art *N in *LIBL nicht gefunden. An welcher Stelle muß ich die Konvertierung in Decimal einfügen?

    Danke.
    Gruss
    Tobias

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das hat den ODBC-Treiber auch nicht zu interessieren. DEC(xxx, n, p) ist die Kurzform von cast(xxx as decimal(n, p)) und wird direkt von der AS/400 ausgeführt.
    Ich weiß nicht, was du da ggf. noch falsch machst. Wichtig sind ggf. Leerzeichen vor und nach den Konstanten, da sonst ggf. die Parameter nicht stimmen:

    dec(xxx,_9,_0)
    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. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  2. Tape von einer AS400 von anderer AS400 aus nutzen?
    By hs in forum IBM i Hauptforum
    Antworten: 15
    Letzter Beitrag: 07-11-06, 19:28
  3. Druckereinrichtung auf AS400?
    By stephanr1 in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 20-07-06, 14:00
  4. AS400 Operatorin sucht Stelle im Raum Frankfurt
    By NixWisserin in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 15-02-05, 17:51
  5. AS400 Fehlermeldung
    By Matze in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-03-01, 08:41

Berechtigungen

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