任何想法爲什麼這個代碼不能在Sql Server中工作嗎?光標練習不起作用
CREATE PROCEDURE sum_salaries(OUT sum INTEGER)
LANGUAGE SQL
BEGIN
DECLARE p_sum INTEGER;
DECLARE p_sal INTEGER;
DECLARE c CURSOR FOR SELECT SALARY FROM EMPLOYEE;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
SET p_sum = 0;
OPEN c;
FETCH FROM c INTO p_sal;
WHILE(SQLSTATE = '00000') DO
SET p_sum = p_sum + p_sal;
FETCH FROM c INTO p_sal;
END WHILE;
CLOSE c;
SET sum = p_sum;
END%
它給所有類型的錯誤:
消息102,級別15,狀態1,過程sum_salaries,3號線錯誤 附近的語法 'OUT'。消息155,級別15,狀態2,過程sum_salaries, 行6'INTEGER'不是可識別的CURSOR選項。消息155,15級, 狀態2,過程sum_salaries,行7'INTEGER'不是一個可識別的 CURSOR選項。消息155,級別15,狀態2,過程sum_salaries, 第9行'CHAR'不是可識別的CURSOR選項。消息102,級別15, 狀態1,過程sum_salaries,第15行 'p_sal'附近的語法不正確。消息102,級別15,狀態1,過程sum_salaries,行17 'DO'附近的語法錯誤。消息102,級別15,狀態1,過程 sum_salaries,第19行'p_sal'附近的語法錯誤。消息102,級別 15,狀態1,過程sum_salaries,第24行 '='附近的語法不正確。
另外,如果你能指點充足的文/現場教導如何使用遊標,這將是巨大的。此示例取自:http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.apdv.routines.doc%2Fdoc%2Fc0024361.html&resultof=%22%63%75%72%73%6f%72%22%20
非常感謝您提前!
這不是T-SQL。此代碼不是爲SQL Server設計的。 – njr101
那些(DB2)文檔的SqlServer版本:http://msdn.microsoft.com/zh-cn/library/ms181441.aspx –