Jag har skrivit MYCKET pro*c tidigare och med tiden insett att du inte vill kontrollera returkoden för PREPARE-satsen eftersom den aldrig returnerar något värde. Så här menar jag:
Värdet PREPARE sqlca.sqlcode är returkoden för satsen som kördes omedelbart FÖRE PREPARE-satsen. Med andra ord, om du kontrollerar utdata från PREPARE-satsen och satsen som kördes precis innan PREPARE-satsen misslyckades, så misslyckas returkoden för prepareringen. Om det föregående påståendet lyckades, verkar PREPARE ha lyckats.
Med andra ord är värdet prepare sqlca.sqlcode i princip ingenting (det misslyckas aldrig av sig självt). Så om PREPARE nu misslyckas, kontrollera satsen som kördes precis före PREPARE-satsen och se till att du kontrollerar sqlca.sqlcode-värdet för den. Min satsning är att det tidigare uttalandet misslyckas, och felet som returneras är relaterat till det uttalandet. Är det vettigt?
-Jim