データを取得して @data_table にフェッチするカーソルがあります。次に、while ループで、その @data_table を別のカーソル (テーブル名として) に渡して、さらに処理を実行します。@data_table の宣言エラーが発生し続けます。これを修正するにはどうすればよいですか?
DECLARE @var_name varchar(50)
DECLARE @data_table varchar(50)
DECLARE @data_value varchar(50)
DECLARE curDiscreteVars CURSOR LOCAL
FOR SELECT DISTINCT v.var_name, v.data_table
FROM dbo.vars v
GROUP BY v.var_name, v.data_table
-- Loop through cursor, translating variable values as needed, and generate counts for each val_code for a variable
OPEN curDiscreteVars
FETCH NEXT FROM curDiscreteVars
INTO @var_name, @data_table
WHILE @@FETCH_STATUS = 0
BEGIN
--loop through all possible data values
DECLARE curValues CURSOR LOCAL
FOR SELECT DISTINCT @var_name
FROM @data_table
OPEN curValues
FETCH NEXT FROM curValues
INTO @data_value
WHILE @@FETCH_STATUS = 0
BEGIN
print @var_name
FETCH NEXT FROM curValues
INTO @data_value
END
CLOSE curValues
DEALLOCATE curValues
FETCH NEXT FROM curDiscreteVars
INTO @var_name, @data_table
END
CLOSE curDiscreteVars
DEALLOCATE curDiscreteVars