2015-10-18 76 views
-1

爲什麼不會顯示多個結果?此外,我收到此錯誤消息「轉換失敗時,將varchar值'fetch_status'轉換爲數據類型int」我的代碼有什麼問題?遊標sql問題

Declare [plzwork] cursor 
for 
Select * from [itsthegoodtable] 

Where [Methodofpayment] = 'pd' 

---open cursor 

Open [plzwork] 

Fetch next from [plzwork] 

while 'fetch_status' = 0 

fetch next from [plzwork] 

close [plzwork] 

deallocate [plzwork] 
+1

請用您正在使用的數據庫標記您的問題。 –

+0

使用'@@ FETCH_STATUS'而不是''fetch_status''。我也希望有一個轉換錯誤。 –

+0

另一個問題是您沒有設置遊標查詢中的任何變量。通常你會看到FETCH NEXT FROM [plzwork] int @somevariable。 –

回答

0

while條件比較一個字符串,恰好包含「FETCH_STATUS」爲整數。也許你的意思是:

while fetch_status = 0 

你的代碼看起來像SQL Server。在這種情況下,你想:

while @@FETCH_STATUS = 0 

我也強烈建議正確縮進你的代碼,並使用while周圍begin/end以防止意外的失誤。

+0

我需要'圍繞fetch_status,否則我得到一個無效的列名錯誤確定 – marvellosity123

+0

根據這個視頻https://www.youtube.com/watch?v=RHRjLd0bEaQ 4:51當它設置爲0它應該永遠是獲取下一條記錄 – marvellosity123

+0

它與@@ fetch_status thx – marvellosity123