Anmelden

View Full Version : SQLCODE = -000000811. in einem SQLCBLLE



nico1964
26-06-15, 09:51
Ich rufe aus einem CBLLE-PGM ein SQLCBLLE auf und bekomme nach der Ausführung obigen SQL-Code geliefert. Was könnte die Ursache sein?

ExAzubi
26-06-15, 09:55
Mehr als eine Zeile in einem SubSelect.



SQLCODE -811
THE RESULT OF AN EMBEDDED SELECT STATEMENT OR A SUBSELECT IN THE SET CLAUSE OF AN UPDATE STATEMENT IS A TABLE OF MORE THAN ONE ROW, OR THE RESULT OF A SUBQUERY OF A BASIC PREDICATE IS MORE THAN ONE VALUE

nico1964
26-06-15, 10:13
Wenn ich den SQL interaktiv am Green Screen ausführe, kommt genau eine Zeile raus mit den Werten die ich will.
Folgender Ablauf:
CBLLE - PGM macht einiges
ruft SQLCBLLE-PGM1 auf, bringt das richtige Ergebnis
Rückkehr in Aufruf-PGM dieses macht mit den Werten was
ruft SQLCBLLE-PGM2 auf, bringt obigen SQLCODE

Fuerchau
26-06-15, 11:29
Schau dir das Joblog dazu mal genauer an. Starte ggf. den Debugmode oder debugge das Programm und schau dir den Inhalt der Hostvariablen an.
-811 ist schon sehr eindeutig.
Arbeitest du mit Journal und Commit?
Dann macht das Programm ggf. einen Rollback und du siehst das im STRSQL nicht mehr.

nico1964
29-06-15, 06:53
Entschuldigt Leute, aber ich sage eigentlich auch immer wer lesen kann ist eindeutig im Vorteil (war anscheinend zu lange im Krankenstand) Man sollte schon sein eigenes Statement im COBOLSQL richtig aufrufen, dann funktioniert es auch