¿Podría alguien decirme cómo insertar datos a granel desde un cursor de referencia a una tabla temporal en PL/SQL? Tengo un procedimiento en el que uno de sus parámetros almacena un conjunto de resultados, este conjunto de resultados se insertará en una tabla temporal en otro procedimiento almacenado.Cómo insertar datos a granel desde el cursor de ref a una tabla temporal en PL/SQL
Este es mi código de muestra.
CREATE OR REPLACE PROCEDURE get_account_list
(
type_id in account_type.account_type_id%type,
acc_list out sys_refcursor
)
is
begin
open acc_list for
select account_id, account_name, balance
from account
where account_type_id = type_id;
end get_account_list;
CREATE OR REPLACE PROCEDURE proc1
(
...
)
is
accounts sys_refcursor;
begin
get_account_list(1, accounts);
--How to bulk insert data in accounts to a temporary table?
end proc1;
En SQL Server, puedo escribir como código de abajo
CREATE PROCEDURE get_account_list
type_id int
as
select account_id, account_name, balance
from account
where account_type_id = type_id;
CREATE PROCEDURE proc1
(
...
)
as
...
insert into #tmp_data(account_id, account_name, balance)
exec get_account_list 1
¿Cómo puedo escribir similar al código en SQL Server? Gracias.
No es tan fácil. Mi código es solo una muestra. El procedimiento get_account_list tiene muchos cálculos dentro y finalmente aparece un conjunto de resultados que se transfiere a otros procedimientos a través del parámetro acc_list. Gracias. –