2012-08-05 65 views
0

这是后MS SQL特效太多的经验我的第一个MySQL的PROC。在MySQL Workbench中,唯一的警报在整个proc的End行中,但没有提供具体的细节。我的第一个MySQL的过程......神秘的错误

通过一些其他的东西我的工作方式后,所有我留下了现在这个错误...

错误代码:1064 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,在第1行的''附近使用正确的语法。

顺便说一下,我对所有变量都有@,但确信这是一个问题。不知道这是/是吗?

这里的程序...

-- -------------------------------------------------------------------------------- 
-- Routine DDL 
-- -------------------------------------------------------------------------------- 
DELIMITER $$ 

CREATE PROCEDURE `dbname`.`ImportAccountToGravityForm`() 
BEGIN 

    DECLARE intForm_id INTEGER; 
    DECLARE intLead_id_current INT; 
    DECLARE fltField_number_current FLOAT; 
    DECLARE vcrValue_current VARCHAR(200); 
    DECLARE intWeb_Site_Member_ID INT; -- id in import table 
    DECLARE vcrValue2 VARCHAR(200); -- SCHOOL 
    DECLARE vcrValue7 VARCHAR(200); -- ADDRESS LINE 1 
    DECLARE vcrValue8 VARCHAR(200); -- CITY 
    DECLARE vcrValue9 VARCHAR(200); -- STATE 
    DECLARE vcrValue10 VARCHAR(200); -- ZIP 
    DECLARE vcrValue11 VARCHAR(200); -- COUNTRY 
    DECLARE vcrValue12 VARCHAR(200); -- NON-STUDENT/STUDENT 
    DECLARE vcrValue13 VARCHAR(200); -- CLASS OF 
    DECLARE vcrValue14 VARCHAR(200); -- DESCRIPTION 
    DECLARE vcrValue16 VARCHAR(200); -- EMAIL 
    DECLARE vcrValue17 VARCHAR(200); -- AWARD 
    DECLARE vcrValue19 VARCHAR(200); -- SUBMITED BY - FULL NAME 
    DECLARE vcrValue20 VARCHAR(200); -- SUBMITTED BY - MAIL 
    DECLARE vcrValue23 VARCHAR(200); -- YEAR AWARDED 
    DECLARE vcrValue24_6 VARCHAR(200); -- FIRST NAME 
    DECLARE vcrValue24_3 VARCHAR(200); -- LAST NAME 
    DECLARE vcrValue25 VARCHAR(200); -- TITLE 

    SET intForm_id = 2; 
    SET intLead_id_current = -1; 
    SET vcrValue19 = 'Import from YM'; -- SUBMITED BY - FULL NAME 
    SET vcrValue20 = ''; -- SUBMITTED BY - MAIL 
    SET vcrValue12 = ''; -- STUDENT/ALUMNI 
    SET vcrValue14 = ''; -- DESCRIPTION 

    SELECT e.Web_Site_Member_ID, e.School, e.Home_Address_Line1, e.Home_City, e.Home_State_Abbrev, e.Home_Postal_Code, 
    e.Home_Country, e.Class_of, e.Email_Address, e.Membership, e.Year_award_or_scholarship_received, 
    e.First_Name, e.Last_Name, e.Title 
    INTO intWeb_Site_Member_ID, 
      vcrValue2, -- SCHOOL 
      vcrValue7, -- ADDRESS LINE 1 
      vcrValue8, -- CITY 
      vcrValue9, -- STATE 
      vcrValue10, -- ZIP 
      vcrValue11, -- COUNTRY 
      vcrValue13, -- CLASS OF 
      vcrValue16, -- EMAIL 
      vcrValue17, -- AWARD 
      vcrValue23, -- YEAR AWARDED 
      vcrValue24_6, -- FIRST NAME 
      vcrValue24_3, -- LAST NAME 
      vcrValue25 -- TITLE 
    FROM Export_fromYM_2012_06_25 e 
    WHERE e.Imported <> 'Y' AND e.Member_Type_Code = 'Student/Alumni' 
    ORDER BY e.Web_Site_Member_ID ASC; 

    INSERT INTO wp_hpvyvb_rg_lead 
     (form_id, date_created, ip, source_url, user_agent) 
    VALUES 
     (1, NOW(), '', 'import'); 

    SET intLead_id_current = LAST_INSERT_ID(); 

    IF intLead_id_current > 0 THEN 
    BEGIN 
      INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 2, vcrValue2); 

      INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 7, vcrValue7); 

      INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 8, vcrValue8); 

      INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 9, vcrValue9); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 10, vcrValue10); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 11, vcrValue11); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 12, vcrValue12); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 13, vcrValue13); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 14, vcrValue14); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 16, vcrValue16); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 17, vcrValue17); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 19, vcrValue19); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 20, vcrValue20); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 23, vcrValue23); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 24.6, vcrValue24_6); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 24.3, vcrValue24_3); 

       INSERT INTO wp_hpvyvb_rg_lead_detail 
       (lead_id, form_id, field_number, value) 
      VALUES 
       (intLead_id_current, intForm_id, 25, vcrValue25); 


     UPDATE Export_fromYM_2012_06_25 SET Imported = 'Y', CustomFieldsMemberID = intLead_id_current WHERE @intWeb_Site_Member_ID = Web_Site_Member_ID; 

    END; -- IF 

END; 
$$ 

DELIMITER ; 
+0

额外分号 – Geoffrey 2012-08-05 23:17:54

+0

“这是我的第一个MySQL的PROC”当我写我的第一次节目中的任何新的语言,我总是先从一些简单的像的“Hello World”,并得到该工作第一。一旦我得到了,我再慢慢添加更多的代码来得到它做我想做的,每一步测试它。你有没有试图将你的问题分解成更小的部分并让这些部分先工作?我无法想象我在我以前从未使用的语言的第一次尝试完全正确输入100+行代码。如果我能用我熟悉的语言做到这一点,我会很高兴! – 2012-08-05 23:18:21

+0

附加分号在哪里? – 2012-08-05 23:22:38

回答

0

我想通了。

我不需要'开始“结束”的if语句,而是一个“结束如果”

的感谢!