Bonjour,
J'ai un package, auquel j'essaie d'ajouter une procédure qui effectuerait un MERGE INTO sur une vraie table, mais avec des données contenues dans une variable de type table...
J'ai ça comme déclaration de types :
Code PLSQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 type TFILTRE is RECORD (APP VARCHAR2(8), CUBE VARCHAR2(8), FILTRE VARCHAR2(255), ENTITY VARCHAR2(80)) ; type TFILTRES is table of TFILTRE ;
Et voici ma procédure :
Code PLSQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PROCEDURE IU_FILTRE (v_FILTRES IN TFILTRES) IS BEGIN MERGE INTO OBI_FILTRES F USING (SELECT... FROM v_FILTRES) V ON (F.APPLICATION = V.APP AND ...) WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ... END ;
Mais lorsque j'essaie de compiler, il me dit à propos de v_FILTRES :Il y a une syntaxe spéciale pour faire un SELECT sur une variable table ? J'ai essayé TABLE(v_FILTRES), mais ça m'a fait une autre erreur :PL/SQL: ORA-00942: table or view does not exist.Merci d'avance pour toute piste !PLS-00642: local collection types not allowed in SQL statements.
Partager