我是IBM DB2的新手,我正在尝试使用IBM DB2 Stored过程的结果集插入SQL中的临时表。 从SQL Server单独调用时,存储过程将返回正确的数据。
但是当我创建一个临时表并尝试将记录从IBM DB2 SP插入临时表时,它表示'(0行(s)受影响)'
我在SQL服务器中单独调用DB2 SP。
EXEC ('{CALL SCHEMA.SP_NAME (''PARAM1'', ''PARAM2'', ''PARAM3'')}') AT SERVERNAME;
这样可以得到正确的输出。
现在我创建一个临时表,其列名与SP结果集的定义相同 并尝试像这样插入临时表
CREATE TABLE #reorder (
PRODCODE VARCHAR(35),
BUYNUM VARCHAR(10),
DISCO CHAR(1),
QTY_AVAIL INT ,
RECENT_NBR_DAY INT,
RECENT_ORD_QTY INT,
PER_DAY_DEMAND_QTY DECIMAL(7,2),
AVAIL_NBR_DAY DECIMAL(7,2),
YEAR_ORD_QTY INT,
YEAR_PER_DAY_DEMAND DECIMAL(7,2),
PONUM VARCHAR(10),
POQTY INT,
ISSUEDAT DATETIME,
PRODDESC VARCHAR(25),
CUCODE VARCHAR(15),
LEADTIME INT,
DEMANDPERDAY DECIMAL(7,2),
ANNUALUSAGE INT,
MAXIMUMDAILYUSAGE INT,
SAFETYSTOCK DECIMAL(7,2),
REPORDERPOINT DECIMAL(7,2),
PRCVNR INT,
)
INSERT INTO #reorder EXEC ('{CALL SCHEMA.SP_NAME (''PARAM1'', ''PARAM2'', ''PARAM3'')}') AT SERVERNAME;
即使SP返回记录,它也不会插入到临时表中。它给出(0行受影响)消息。
我尝试在临时表中增加列数据类型的长度,然后它突然开始工作,但它再次停止工作。
我无法弄清楚究竟是什么问题!!查询中是否有任何需要更改的内容?
我尝试了不同的方法来执行查询,就像使用OPENROWSET一样,但它提供的错误是“OLE DB提供程序" IBMDASQL"对于链接服务器"(null)"表示该对象没有列,或者当前用户没有该对象的权限。'即使SP返回记录,我仍然会收到此错误。
有人可以帮我找到解决方法吗?
提前致谢