Cursorfetch: INTO 列表中声明的变量数目必须与所选列的数目相同
create proc p_contact
as
declare @fcmn varchar(100)
declare @dbid varchar(200)
declare @fan varchar(200)
declare @sql varchar(2000)
Declare Table_contact cursor for --定义游标
select cpname,AccountName from T_unit_account
open table_contact--打开游标
fetch next from Table_contact into @fcmn,@fan,@DBID-- 匹配第一条记录
while (@@FETCH_STATUS=0)-- 读取游标状态,循环
begin
set @sql ='insert into datacollection.dbo.t_rp_contact
(FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,FCompanyName,Faccountname)
select
FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,'''+@fcmn+''','''+@fan+'''
from '+@dbid+'.dbo.t_rp_contact trpc
where not exists(select 1 from datacollection.dbo.t_rp_contact trp where trp.FCompanyName='''+@fcmn+''',trp.Faccountname='''+@fcmn+''' and trp.FID=trpc.FID)'
exec(@sql)
fetch next from Table_contact into @fcmn,@fan,@dbid
end
报错
Cursorfetch: INTO 列表中声明的变量数目必须与所选列的数目相同