我将以下sql server游标插入到表中,变量从游标选择的那一侧向外,如下所示,
DECLARE @Create_UserId uniqueidentifier,
@Create_Date datetime,
@Modification_UserId uniqueidentifier,
@Modification_Date datetime,
SET @Create_UserId = '535EFDB6-CA05-4DB3-A379-E3D65CF9C08F';
SET @Create_Date = '2017-05-16 08:51:10.080';
SET @Modification_UserId = '535EFDB6-CA05-4DB3-A379-E3D65CF9C08F';
SET @Modification_Date = '2017-06-29 17:06:20.103';
DECLARE insertapiinvoicedetail_cursor CURSOR FOR
select
CompanyID,APOD_Master_Id,APOD_Project_Id,APOD_Item_Num,APOD_Project_Code, APOD_Item_Id,apod_cost_centre_id
from Account_APOrderDetail aod
where aod.APOD_Master_Id in (
select ref_code
from Account_APOrderMaster
where apo_order_id = 00122975
);
OPEN insertapiinvoicedetail_cursor
FETCH NEXT FROM insertapiinvoicedetail_cursor INTO
....
但是当我运行查询时,出现以下错误
Cursorfetch:在INTO列表中声明的变量数量必须与所选列的数量匹配。
如何解决此问题?
答案 0 :(得分:0)
您的光标缺少变量。
DECLARE @Create_UserId uniqueidentifier,
@Create_Date datetime,
@Modification_UserId uniqueidentifier,
@Modification_Date datetime,
SET @Create_UserId = '535EFDB6-CA05-4DB3-A379-E3D65CF9C08F';
SET @Create_Date = '2017-05-16 08:51:10.080';
SET @Modification_UserId = '535EFDB6-CA05-4DB3-A379-E3D65CF9C08F';
SET @Modification_Date = '2017-06-29 17:06:20.103';
--variables
DECLARE
@CompanyID INT,
@APOD_Master_Id INT,
.....
DECLARE insertapiinvoicedetail_cursor CURSOR FOR
select
CompanyID, APOD_Master_Id, APOD_Project_Id, APOD_Item_Num, APOD_Project_Code, APOD_Item_Id, apod_cost_centre_id
from Account_APOrderDetail aod
where aod.APOD_Master_Id in (
select ref_code
from Account_APOrderMaster
where apo_order_id = 00122975
)
OPEN insertapiinvoicedetail_cursor
FETCH NEXT FROM insertapiinvoicedetail_cursor INTO @CompanyID, @APOD_Master_Id...