質問

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コマンドが適切に終了していない」です。

オラクルでこの声明がどのように見えるべきか知っている人はいますか?

ありがとう!!!

役に立ちましたか?

解決

関数がパイプラインの結果を返す場合、次のように関数をテーブル内に配置する必要があります。

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)
      )
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top