Bonjour,
Je souhaiterais utiliser un curseur dans une fonction DB2 mais je n'arrive pas à compiler, même sur un exemple très simple. La compilation plante soit sur le "FOR", soit sur le "PREPARE".
Auriez-vous une idée d'où pourrait venir le problème ?
Erreur de compilation :
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "FOR" was found following "CLARE CCB_CUR
CURSOR". Expected tokens may include: ".". LINE NUMBER=12. SQLSTATE=42601
Code de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 @ SET SCHEMA #schema# @ @ CREATE FUNCTION getAssietteXXXCursor( pXX INT, pXXX VARCHAR(15), pXXXX INT, pXXXXX INT ) RETURNS DOUBLE BEGIN ATOMIC DECLARE SQL_QUERY VARCHAR(800); DECLARE SQL_STATEMENT STATEMENT; DECLARE CCB_CUR CURSOR FOR SQL_STATEMENT; SET SQL_QUERY = 'select max(COLUMNXXX) from d00.TABLEXXX WHERE XX=305998 AND XXX=5900'; PREPARE SQL_STATEMENT FROM SQL_QUERY; OPEN CCB_CUR; CLOSE CCB_CUR; RETURN 0; END @ @
Partager