2010-11-29 37 views
2

Je convertis les procédures stockées SQL Server en Oracle. Dans SQL Server, vous pouvez insérer dans une table à partir d'un appel de fonction.Insertion Oracle à partir de la fonction

Voici le SQL Server:

INSERT INTO t_tmpl(rel_class_code, rel_side, template_id, template_name, template_desc) 
SELECT rel_class_code, ls_rel_side, obj_id, name, description 
FROM etmf_get_templates_for_rel(ps_rel_class_code, ls_rel_side, pi_called_by) 

Le message d'erreur que je reçois quand la conversion de ce à Oracle est "PL/SQL: ORA-00933: commande SQL pas correctement pris fin".

Est-ce que quelqu'un sait à quoi cette déclaration devrait ressembler dans Oracle?

Merci !!!

+1

Comment est votre fonction définie? – kurosch

Répondre

3

Si votre fonction retourne un jeu de résultats que vous avez juste besoin pipe-line pour mettre la fonction à l'intérieur de tableau comme suit:

INSERT INTO t_tmpl 
    (rel_class_code, rel_side, template_id, template_name, template_desc) 
    SELECT rel_class_code, ls_rel_side, obj_id, name, description 
    FROM TABLE(
     etmf_get_templates_for_rel(ps_rel_class_code, ls_rel_side, pi_called_by) 
    )