2010-11-29 6 views
2

Ich konvertiere SQL Server gespeicherte Prozeduren zu Oracle. In SQL Server können Sie aus einem Funktionsaufruf in eine Tabelle einfügen. HierOracle einfügen von Funktion

ist der 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) 

Die Fehlermeldung erhalte ich, wenn dies zu Oracle Umwandlung ist "PL/SQL: ORA-00933: SQL-Befehl nicht richtig beendet".

Weiß jemand, wie diese Anweisung in Oracle aussehen soll?

Danke !!!

+1

Wie ist Ihre Funktion definiert? – kurosch

Antwort

3

Wenn Ihre Funktion eine Pipeline-Ergebnismenge zurückgibt die Funktion innerhalb TABLE muß nur setzt sich wie folgt:

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) 
    )