-
Store Procedure Fehler SQL0579
Hallo,
folgendes Problem.
Ein OPM-RPG-Programm ist als Store Procedure registriert.
Dieses ruft per dynamischem CALL ein SQLRPG-PGM auf.
Das SQLRPG-PGM verwendet folgende Anweisungen :
Code:
C* SQL-Cursor
C/EXEC SQL
C+ DECLARE BstCursor CURSOR FOR
C+ DynSqlStmt
C/END-EXEC
...
C* Verarbeitung vorbereiten
/EXEC SQL
C+ PREPARE DynSqlStmt
C+ FROM :SQLSTM
C/END-EXEC
...
C/EXEC SQL
C+ OPEN BstCursor
C/END-EXEC
...
C* Druckerwarteschlange
C/EXEC SQL
C+ FETCH BstCursor INTO :OUTQ
C/END-EXEC
...
C* Verarbeitung beenden
C/EXEC SQL
C+ CLOSE BstCursor
C/END-EXEC
Das Feld SQLSTM enthält ein einfache SQL-SELECT Anweisung.
Beim Öffenen des Cursors tritt folgender Fehler auf :
Code:
Nachrichten-ID . . . . : SQL0579 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 17.11.05 Sendezeit . . . . . . : 15:49:21
Nachricht . . . : Lesen von SQL-Daten nicht zulässig.
Ursache . . . . : Einer der folgenden Fehler ist aufgetreten:
-- Es wurde eine Prozedur oder Funktion aufgerufen, die mit CONTAINS SQL
DATA als Datenzugriffsattribut erstellt wurde. Eine Prozedur oder Funktion,
die mit CONTAINS SQL DATA erstellt wurde, oder eine Prozedur oder Funktion,
die von der Prozedur oder Funktion aufgerufen wird, darf keine Daten lesen
und keine Prozedur oder Funktion aufrufen, die das Attribut READS SQL DATA
hat.
-- CONTAINS SQL DATA darf in den Anweisungen CREATE PROCEDURE oder CREATE
FUNCTION für eine SQL-Prozedur oder -Funktion nicht angegeben werden, wenn
der Routinenteil Anweisungen enthält, die Daten ändern.
-- Ein Auslöser, der SQL-Anweisungen enthält, wurde aktiviert.
Weitere ...
Wo liegt das Problem, bzw. was ist mein Fehler ?
Danke Sven!
-
Erstelle die SQL-Prozedur einfach ohne CONTAINS SQL DATA.
-
Zitat von Fuerchau
Erstelle die SQL-Prozedur einfach ohne CONTAINS SQL DATA.
Das ist ja gerade das Problem :
Die Procedure ist folgendermassen definiert :
Code:
CREATE PROCEDURE OSDBBANFPR.BST100C (
INOUT PARAM CHAR(385) ,
INOUT RC CHAR(1) ,
INOUT MSGID CHAR(7) ,
INOUT MSG CHAR(80) ,
INOUT FLD CHAR(32) )
LANGUAGE CL
SPECIFIC OSDBBANFPR.BST100C
NOT DETERMINISTIC
NO SQL
CALLED ON NULL INPUT
EXTERNAL NAME 'OSDBBANFPR/BST100C'
PARAMETER STYLE GENERAL ;
Beim BST100C handelt es sich um ein CL-Programm.
Hier werden folgende Programme per dynamischem Call aufgerufen :
BST100C (CLP) --> CALL BST100 (RPG) --> BST100S (SQLRPG)
Das SQL-PGM BST100S enthält hierbei die embedded SQL-Anweisung.
Sven
-
Wenn du NO SQL angibst, darf auch kein SQL verwendet werden, auch nicht in aufgerufenen Programmen (Thread-Sicherheit).
Eliminiere die Zeile !
Mit dem DETERMINISTIC stehe ich auch etwas auf Kriegsfuss.
Ggf. ist hier NOT nicht erlaubt, da ja unterschiedliche Ergebnisse bei identischen Parametern zurückkommen könnten (betrifft normalerweise nur Funktionen).
-
Vielen Dank,
das hat funktioniert bzw. korrekt wäre eigentlich der default Wert READS SQL DATA und das funktioniert auch.
(Wird wohl doch Zeit für eine Brille, NO SQL steht ja gross da )
Die Beschreibung zur Fehlermeldung SQL0579 ist dann aber nicht ganz korrekt. (richtig wäre ... NO SQL/CONTAINS SQL ...). Und CONTAINS SQL DATA gibt es schon gar nicht.
NOT DETERMINISTIC ist hier unkritisch, da die SP immer mit anderen Input-Parameterwerten aufgerufen wird.
(Deterministische SP kann DB2 optimieren, d.h. sie liefern mit den selben Input-Parametern immer die selben Output-Parameterwerte zurück.)
Sven
Similar Threads
-
By rebe in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 12-10-06, 11:22
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
By florian in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 17-05-06, 16:08
-
By Hubert in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-05-06, 09:41
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 21-09-05, 11:22
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