2015-06-27 21 views
0
CREATE PROCEDURE temp (IN empId INT) 
     BEGIN 
     DECLARE emptype VARCHAR; 
      SELECT emptype = qoute(emptype) FROM dms_document WHERE id = empid; 
       SELECT emptype, 

    CASE 
    WHEN emptype = 'P' THEN doctype; 

    ELSE 'No Documents required'; 
    END CASE ; 
    FROM dms_report WHERE pilot = 1 
End; 

我想在我的sql工作臺中創建過程,但我得到關鍵字錯誤。爲什麼這個錯誤請來幫忙。在我的SQL工作臺中創建過程的錯誤

+0

你想達到什麼目的? – Mureinik

回答

0
DELIMITER // 
CREATE PROCEDURE temp (empId INT) 
    BEGIN 
    DECLARE var_etype VARCHAR(36); 

SELECT 
    emptype = QOUTE(emptype) 
FROM 
    dms_document 
WHERE 
    id = empid; 
SELECT 
    emptype, 
    CASE 
     WHEN emptype = 'P' THEN doctype 
     ELSE 'No Documents required' 
    END 
FROM 
    dms_report 
WHERE 
    pilot = 1; 
End// 
DELIMITER ; 

運行這一點,並享受! !

0

注第一:

  • 添加DELIMITER $$在開始和在$$ DELIMITER
  • VARCHAR需要的長度,例如:VARCHAR(45)
  • CASE並不在每行需要一個分號。

最後的代碼看起來應該像這樣只END無需結束CASECASE ;,不妨一試:

DELIMITER $$ 
CREATE PROCEDURE temp (IN empId INT) 
     BEGIN 
     DECLARE emptype VARCHAR(45); 
      SELECT emptype = qoute(emptype) FROM dms_document WHERE id = empid; 
       SELECT emptype, 

    CASE 
    WHEN emptype = 'P' THEN doctype 

    ELSE 'No Documents required' 
    END 
    FROM dms_report WHERE pilot = 1; 
End $$ DELIMITER ; 
相關問題