-
Variable innerhalb von EXEC SQL nutzen
Hallo zusammen,
ich rufe über ein CL ein SQLRPG auf. Dabei übergebe ich Variablen. Diese möchte ich gerne innerhalb von EXECSQL nutzen. Leider kommt die Meldung "Spalte oder Globale Variable nicht gefunden"
Nun zu meiner Frage.. muss ich Variablen zusätzlich im EXEC SQL deklarieren?
Danke im voraus.
_MG_
-
Die Variabeln fangen mit einen Doppelpunkt an.
Im RPG ->>> MeinFeld
im SQL-Teil ->>> :MeinFeld
Gruß
Ronald
-
Für Variablen benötigst du den Doppelpunkt ':'.
Du kannst die Variablen aber nur beschränkt einsetzten, z.B. als Werte:
Code:
Exec Sql Insert Into Tab1 values ('Wert1', 4711, :myHostVariable);
Wenn du die Variable z.B. für den Tabellennamen verwenden willst, benötigst du dynamisches SQL.
lg Andreas
-
Danke schonmal.. das hatte ich eigentlich beachtet
Beispielcode:
EXEC SQL
DECLARE C1 SCROLL CURSOR FOR
select Feld,Feld2,Feld3,Feld4,Feld5from Bib/Datei
where Datei.Feld BETWEEN :SQLVON AND :SQLBIS AND
Feld1='N' AND
Feld2= :SQLFI AND
Feld3= :SQLFA AND
Feld4='00'
OR ...
Ist das in der Art und Weise möglich?
-
Wie sieht die Fehlermeldung im Detail aus?
Welche Variable konnte er nicht finden?
-
Seit V7 werden Tippfehler leider nicht mehr vom Compiler sondern erst zur Laufzeit bestraft.
Der Compiler hält zunächst mal alle nicht gefundenen Variablen oder Felder des SQL's für später verfügbare globale Variablen was SQL dann zur Laufzeit eben bei Nichtvorhandensein bestraft.
Häufig ist das dann in der Quelle nur ein fehlender Doppelpunkt vor einer Hostvariable, was man leider nur zu leicht überliest.
-
Was mir immer noch angeraten worden ist,
eigene Variabeln sollten nicht mit SQL beginnen.
Der Compiler erstellt bei der Umsetzung des SQLs selber jede Menge Variabeln die mit SQL beginnen.
Nicht das es da mal zu Konflikten kommt, weil man zufällig den gleichen Namen verwendet.
Bzw. bei irgend einem Relaiswechsel die IBM neue Variabeln einführt, die sich dann mit den eigenen beißen.
Gruß
Ronald
-
Werden die Variablen als Parameter übergeben, hat der SQL Precompiler bisweilen Probleme diese zu finden und zuzuordenen.
Versuche mal zusätzliche Variablen zu generieren, die Du mit den im SQL verwendeten Parameter-Werten versorgst und anschließend als Host-Variablen im SQL-Statement einsetzt.
Birgitta
-
... oder das prüft, was bisher nicht geprüft wurde - hatten wir alles schon...
D*B
-
Hallo zusammen und Danke für die vielen Antworten,
der fehler lag ganz unspektakulär bei einem falsch übergeben Parameter. Ich finde die Fehlermeldung der as400 an dieser Stelle echt kompliziert bzw. etwas ungenau..
Trotzdem nochmal Danke. In den Beiträgen war sehr viel Wissenswertes.
grüße und ein schönes Wochenende
MG
-
Die Meldung "Spalte oder Globale Variable nicht gefunden" ist da schon sehr eindeutig.
D.h., dass entweder der Name der Spalte in einer Tabelle nicht da ist oder eben die ab V7 mögliche globale Variable.
Damit ist dann eben keine Hostvariable gemeint, die grundsätzlich mit einen Doppelpunkt beginnen muss. Und somit ergibt sich dann der Tippfehler, der vom Compiler nicht mehr erkannt werden kann.
-
Ich fand es nur verwirrend das er bei der Fehlermeldung auch auf den SQL Cursor hinweist, gleichzeitig aber den Fehler in der Reihe bemängelt in der die Variable initialisiert wird. Im Nachhinein erscheint es natürlich logisch, wahrscheinlich hat mir hier einfach Erfahrung gefehlt um das richtig zu interpretieren.
MG
Similar Threads
-
By homue in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 25-07-16, 14:27
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 12-12-15, 12:07
-
By hxiak in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-09-14, 18:15
-
By Klaus in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 20-04-02, 18:37
-
By AS-Trade in forum NEWSboard Server & Hardware Markt
Antworten: 0
Letzter Beitrag: 08-09-01, 12:29
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks