Bonjour, je suis en train de creer une fonction en sql dynamique, donc voici pour le moment le code :
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
create or replace function est_un_ngraphe (t2 varchar2)
  return varchar2
  is
    mot2 varchar2 (4);
    tmp2 varchar2(6);
    req varchar2(512);
    tmp3 pls_integer;
  begin
    mot2 := '''kw''';
    req := 'select code into tmp2 from ' || t2 || ' where symbole = ' || mot2 ;
    EXECUTE IMMEDIATE req into tmp3 ;
    return req;
  EXCEPTION
    when no_data_found then return 0;
  END est_un_ngraphe;
et il me retourne l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Erreur commençant à la ligne 533 de la commande :
begin
dbms_output.put_line (est_un_ngraphe('haousa'));
end;
Rapport d'erreur :
ORA-00905: mot-clé absent
ORA-06512: à "L3_8.EST_UN_NGRAPHE", ligne 11
ORA-06512: à ligne 2
00905. 00000 -  "missing keyword"
*Cause:    
*Action:
Comme je débute en sql dynamique je n'ai aucune idée du mot clé manquant.
Si quelqu'un a une idée, je suis preneur.
Merci d'avance.
Foublanc1.

édit : Bon, bah j'ai fini par trouver. Si quelqu'un venait à avoir le même problème et à lire ce post, sachez qu'il suffit de sortir le "into tmp" de la chaîne de caractères et de le mettre après le execute immediate.