2010-11-29 45 views
2

我正在將SQL Server存儲過程轉換爲Oracle。在SQL Server中,您可以從函數調用中插入到表中。Oracle從函數中插入

這是在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) 

錯誤消息轉換這到Oracle時,我得到的是 「PL/SQL:ORA-00933:SQL命令不能正確地結束」。

有誰知道這個聲明應該在Oracle中看起來像什麼嗎?

謝謝!

+1

如何定義你的功能? – kurosch 2010-11-29 18:47:29

回答

3

如果你的函數返回一個流水線的結果集,你只需要把裏面的函數表如下:

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