Как вставить данные во временную таблицу из курсора, возвращаемого хранимой процедурой - PullRequest
1 голос
/ 06 июня 2019

Я использую Oracle 11g, и у меня есть хранимая процедура, которая выбирает некоторые данные и помещает их в курсор для возврата. Мне нужно вставить эти данные из этого курсора во временную таблицу, но я не знаю как. Надеюсь, ты сможешь мне помочь.

Вот как я пытался (именно так это работает в SQL Server):

INSERT INTO tt_IDIOMALISTAS(Idtt, CampoOriginal, CampoModificado, Estado) VALUES sp_SearchSelect(v_CY,v_Idioma,v_SubModule);

Это курсор внутри SP:

open v_refcur for SELECT
   SPD.Id_CombosPorDefecto, SPD.vrc_NombreCombos1, S.vrc_Idioma1, S.vrc_Idioma2, S.vrc_Idioma3
   FROM tbl_Adm_CombosPorDefecto SPD
   LEFT JOIN  tbl_Adm_Combos S
   ON SPD.Id_CombosPorDefecto = S.int_IdComboPorDefecto
   WHERE SPD.int_IdSubModulo = v_SubModule
   AND SPD.FK_CY = v_CY;

1 Ответ

1 голос
/ 06 июня 2019

SQL (вставить скрипт) лучше, чем PL / SQL и SQL (курсор и вставить скрипт) с точки зрения производительности.

INSERT INTO tt_idiomalistas
    SELECT spd.id_combospordefecto
           , spd.vrc_nombrecombos1
           , s.vrc_idioma1
           , s.vrc_idioma2
           , s.vrc_idioma3
      FROM tbl_adm_combospordefecto spd
      LEFT JOIN tbl_adm_combos s ON spd.id_combospordefecto = s.int_idcombopordefecto
     WHERE spd.int_idsubmodulo = v_submodule
       AND spd.fk_cy = v_cy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...