2

SQL Server ストアド プロシージャを Oracle に変換しています。SQL Server では、関数呼び出しからテーブルに挿入できます。

SQL サーバーは次のとおりです。

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でこのステートメントがどのように見えるべきか知っている人はいますか?

ありがとう!!!

4

1 に答える 1

3

関数がパイプライン化された結果セットを返す場合は、次のように関数を TABLE 内に配置するだけです。

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)
      )
于 2010-11-29T18:54:54.837 に答える