これが私のストアドプロシージャです:
CREATE PROCEDURE uspUpdateDataInBapMidTable (
@companyName varchar(50)
)
AS
BEGIN
SET @companyName = 'nürnberger'
DECLARE @tableNameMid varchar(50) , @tableNameIn varchar(50) , @queryToCreateTable nvarchar (500) , @queryToAddColumn nvarchar(500)
DECLARE @queryToUpdateBapMid nvarchar(500)
SET @tableNameMid = 'BAP_'+@companyName+'_MID'
SET @tableNameIn = 'BAP_'+@companyName+'_IN'
DECLARE @COGI varchar (50)
SET @COGI = ''
SET NOCOUNT ON
DECLARE @collectionOfGesellschaft_id nvarchar(100)
DECLARE myCursor cursor FOR
SELECT distinct gesellschaft_id from CRM_Wifo_GmbH.dbo.vertrag_168 where gesellschaft like '%nürnberger%'
open myCursor
DECLARE @collectionOfGesellschaft_id1 nvarchar(100)
set @collectionOfGesellschaft_id = '('
fetch next from myCursor into @collectionOfGesellschaft_id1
while @@fetch_status = 0
begin
set @collectionOfGesellschaft_id = @collectionOfGesellschaft_id + @collectionOfGesellschaft_id1 + ' ,'
fetch next from myCursor into @collectionOfGesellschaft_id1
END
set @collectionOfGesellschaft_id = SUBSTRING(@collectionOfGesellschaft_id,1,LEN(@collectionOfGesellschaft_id)-1) + ')'
SET @COGI = @collectionOfGesellschaft_id
CLOSE myCursor
DEALLOCATE myCursor
go
SET @queryToUpdateBapMid = N'select distinct b.*,v.vertrag_id,v.VersicherungsscheinNummer
from CRM_Wifo_GmbH.dbo.vertrag_168 v,temp_universa b where v.VersicherungsscheinNummer like ''%'' + b.VSNR + ''%'' and v.gesellschaft_id in' + @COGI
EXEC(@queryToUpdateBapMid)
END
@companyName
テスト目的で設定されています。カーソルのみを実行すると、正常に動作します。しかし、ストアドプロシージャでは次のエラーが表示されます:
メッセージ 102、レベル 15、状態 1、プロシージャ uspUpdateDataInBapMidTable、行 33
'myCursor' 付近の構文が正しくありません。メッセージ 137、レベル 15、状態 2、行 3
スカラー変数「@COGI」を宣言する必要があります。メッセージ 137、レベル 15、状態 2、行 4
スカラー変数「@queryToUpdateBapMid」を宣言する必要があります。
SPの開始時にこれら2つの変数を宣言しましたが、このエラーが表示されています。そして、ラインの問題は何ですか
DEALLCOATE myCursor