我在SQL数据库的一个包(retrieve_user)下创建了下面的存储过程,以从另一个表中检索信息,将其插入到全局临时表(global_temp_tableB)中。
procedure Load_BTable (NumID IN NUMBER) AS
begin
insert into global_temp_tableB (name, age, address, country, year)
select name, age, address, country, year
from table(prepare_tableB.find_User(NumID));
commit;
end Load_LFTable;
但是当我尝试使用以下方法测试并从SQL窗口调用该过程时
begin
retrieve_user.Load_BTable(numid => 739);
end;
global_temp_tableB仍为空,但是当我使用实际的INSERT语句而不是调用存储过程时:
begin
insert into global_temp_tableB (name, age, address, country, year)
select name, age, address, country, year
from table(prepare_tableB.find_User(739));
end;
它可以返回我想要的结果。所以我相信存储过程中的INSERT语句正在工作。
但是为什么当我调用存储过程时,它不会返回我想要的结果?
非常感谢你所有的时间和精力。
答案 0 :(得分:0)
IF OBJECT_ID(N'Load_BTable',N'P') IS NOT NULL
DROP PROCEDURE Load_BTable
GO
CREATE PROCEDURE Load_BTable
(
@NumID INT
)
WITH ENCRYPTION
AS
BEGIN
SET NOCOUNT ON
insert into global_temp_tableB (name, age, address, country, year)
select name, age, address, country, year
from prepare_tableB WHERE NumId=>@NumID
SET NOCOUNT OFF
END
GO
并试试这个
exec Load_BTable 739