[NEWSboard IBMi Forum]

Thema: SQL-Error

  1. #1
    Registriert seit
    Apr 2001
    Beiträge
    61

    Angry SQL-Error

    Hallo,

    bei einem Embedded-Sql bekomme ich bei Ausführung immer wieder folgende Nachricht im Joblog:

    Nachrichten-ID . . . . : SQL0305 Bewertung . . . . . . : 30
    Nachrichtenart . . . . : Diagnose
    Sendedatum . . . . . . : 16.10.01 Sendezeit . . . . . . : 18:19:24

    Nachricht . . . : Anzeigervariable erforderlich.
    Ursache. . . . . : Eine Anweisung FETCH, eine eingebettete Anweisung SELECT,
    eine Anweisung CALL, SET oder VALUES INTO hatte einen Nullwert zur Folge,
    für Host-Variable SUM wurde jedoch keine Anzeigervariable angegeben. Die
    relative Position der Host-Variablen in der Klausel INTO oder der
    Parameterliste ist 1. Ist der Name der Host-Variablen *N, wurde ein
    SQL-Deskriptorbereich (SQLDA) angegeben.
    Fehlerbeseitigung: Eine Anzeigervariable angeben und das Programm erneut
    vorumwandeln.

    Kann damit jemand was anfangen?
    Gruss Stefan

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Post

    Hallo Stefan,

    Hast Du alle verwendeten Host-Variablen definiert?

    Der Fehler tritt erst bei Ausführung auf? Die Compilierung war fehlerfrei?

    Handelt es sich um eine statische oder Dynamische Abfrage?

    Vielleicht kannst Du einfach die verwendeten SQL-Statements angeben.

    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

  3. #3
    Registriert seit
    Apr 2001
    Beiträge
    61

    Wink

    Hallo Birgitta,

    beim Compile gibt es keine Fehler!
    Bin nun ein bisschen weiter, es hat wohl irgendwas mit der Variablen zu tun, die ich definiert habe. (Decimal 5 0)

    Ursache . . . . .: Für Host-Variable SUM ist eine Umsetzung erforderlich. Die
    für die Anweisung FETCH oder die eingebettete Anweisung SELECT abgerufenen
    Daten können nicht direkt in die Host-Variablen übertragen werden. Die
    Anweisung wurde korrekt ausgeführt. Die Systemleistung wäre jedoch besser,
    wenn keine Datenumsetzung erforderlich wäre. Für die Host-Variable ist
    aufgrund des Ursachencodes 2 eine Umsetzung erforderlich.- Ursachencode 1 -
    Host-Variable SUM ist eine Zeichen- oder eine Grafikzeichenfolge mit einer
    Länge, die nicht mit der Länge des abgerufenen Werts übereinstimmt.-
    Ursachencode 2 - Host-Variable SUM hat eine numerische Datenart, die nicht
    mit der Datenart des abgerufenen Werts übereinstimmt.

    Gruss Stefan

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Post

    Hallo Stefan,

    Prüfe nochmal folgendes nach:

    Die Anzahl und Art der im Select ausgewählten Felder, muss beim Fetch in der gleichen Reihenfolge stehen.

    Prüfe weiter, ob nach jedem ausgewählten Select-Feld (ausser beim letzten) ein Komma steht.

    Ansonsten gib einfach den SQL-Befehl an.

    Tschuess
    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

  5. #5
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    Beim Lesen aus einer Tabelle die "Null-Werte" zuläßt (nicht verwechseln mit 0 oder *BLANK) muß eine Anzeigervariable mit angegeben werden.

    Es gilt :
    • Anzeigervariable = 0 : Wert ist ok
    • Anzeigervariable = -1 : Nullwert
    • Anzeigervariable = -2 : Datenfehler

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
    Anzeigervariable erforderlich
    [/quote]
    Code:
    d myIndicator     s              5i 0
    d myColumn        s             32a
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
    ...hatte einen Nullwert zur Folge
    [/quote]
    Code:
    c/Exec Sql
    c+   select column1
    c+      into :myColumn :myIndicator,
    c+           ...
    c+      from myTable
    c/End-Exec
    [Dieser Beitrag wurde von rmittag am 23. Oktober 2001 editiert.]

  6. #6
    Registriert seit
    Apr 2001
    Beiträge
    61

    Post

    Das sieht ganz gut aus!
    War bisher noch nicht auf Anzeigervariablen gestoßen, kann damit auch noch nicht viel Anfangen.

    Gibt es auch ein Beispiel für das Alt-Rpg?

    Gruss
    Stefan

  7. #7
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    Was ist Alt-Rpg ?

  8. #8
    Registriert seit
    Apr 2001
    Beiträge
    61

    Question

    Hallo,

    der Klassiker RPG/400.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241

    Post

    Anzeigervariablen sind auch im RPG/400 möglich (genauso anzugeben wie in obigem Beispiel).

    Das Problem der NULL-Werte betrifft "dynamische" Variablen. Dies sind Variablen, die berechnet werden und, wenn kein Ergebnis vorliegt, einen NULL-Wert liefern. Die Unterscheidung liegt darin, dass z.B. "sum(Feldx)" die Summe 0 (dezimal Null) ergeben kann.
    Liegen aber aufgrund der Abfrage keine Daten vor, so wird der NULL-Wert übergeben. (Im DDS wird dies mit ALWNULL definiert).
    Die Anzeigervariable ist vom Typ dezimal 2,0.

    Wenn Sie sicher sind, dass die Summe 0 nicht vorkommen kannn, können sie auch "value(sum(feldx), 0) definieren.
    Die Funktion "value" liefert das 2. Argument als Ergebnis, wenn das 1. Argument NULL liefert (als 2. Argument kann auch jeder beliebige andere Wert verwendet werden).
    In diesem Fall brauchen Sie keine Anzeiger, da NULL nicht mehr vorkommt.
    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. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL Error in Excel
    By Fritzchen in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-08-05, 08:42

Berechtigungen

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