2013-09-23 3 views
0

Je suis nouveau à la procédure stockée IBM db2, ce que j'essaye de faire est d'obtenir les valeurs d'une colonne d'une table et de construire une requête de sélection basée sur ces valeurs, c'est ce que j'ai essayé, ne sais pas comment procéderdb2 procédure stockée pour créer une requête select dynamiquement

CREATE TYPE currencySymbols AS VARCHAR(20) ARRAY[100]@ 

CREATE PROCEDURE ins_curr_ano(IN crsymbol VARCHAR(20), IN cost1 integer, IN cost2 integer, IN teirId integer) 
BEGIN 
DECLARE currencies currencySymbols; 
DECLARE maxCount INTEGER DEAFULT 0; 

set currencies = ARRAY[SELECT distinct(CURR_SYMBOL) as currencySymbols FROM CURRENCY_MAPPING]; 

set maxCount = CARDINALITY(currencies); 

for i in 1..maxCount loop 
    dbms_output.put_line(i); 
end loop; 

[email protected] 

Voici l'erreur que je reçois:

DB21034E la commande a été traitée comme une instruction SQL, car il n'a pas été une commande du processeur de ligne de commande valide . Au cours du traitement SQL, il a renvoyé: SQL0104N Une "boucle" inattendue de jeton a été trouvée après "for i in 1..maxCount". jetons attendus peuvent inclure:.. « (» NUMERO DE LIGNE = 13 SQLSTATE = 42601

Répondre

1

Cette déclaration for ... loop dans votre code a PL/syntaxe SQL, alors que tout le reste a la syntaxe DB2 SQL PL Vous ne pouvez pas mélanger les deux dans le. même routine

Questions connexes