0

我在 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 语句是有效的。

但是为什么当我调用存储过程时,它没有返回我想要的结果呢?

非常感谢您的所有时间和关注。

4

1 回答 1

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
于 2013-07-29T12:17:10.027 回答