2013-03-22 123 views
0

当我运行MySQL工作台即时得到上述的错误下面的代码PLS确实有助于错误代码:1292截断不正确DOUBLE值:“和”

# IF p_Name is not null THEN 
#     SET m_sql = m_sql +' Name=''' + p_Name + ''' and '; 
# END IF; 


    If p_ReligionID is not null THEN 
        SET m_sql = m_sql + '" ReligionId= "' + 'CAST(p_ReligionID AS CHAR(30))' + 'and'; 
    END IF; 

    If p_CasteID is not null THEN 
        SET m_sql = m_sql + '" CasteId= "' + 'CAST(p_CasteID AS CHAR(30))' + 'and'; 

    END IF; 

    If p_CountryID is not null THEN 
        SET m_sql=m_sql+ '" Countryid= "' + 'CAST(p_CountryID AS CHAR(30))' + 'and'; 
    END IF; 

    If p_MotherTongueID is not null THEN 
        SET m_sql=m_sql+'" MotherTongueID= "' + 'CAST(p_MotherTongueID AS CHAR(30))' + 'and'; 
    END IF; 

回答

0

假设m_sql是入境和至少有效其中一个条件通过,最后的声明以'和'结尾。这不是我知道的任何方言中的有效SQL。那么你必须处理看似无关的引用。

我建议的与运算在后续的条件

If p_ReligionID is not null THEN 
       SET m_sql = m_sql + ' and ReligionId = ' + 'CAST(p_ReligionID AS CHAR(30))'; 
END IF; 

(我是一个SQL Server的人,所以MySQL的程序语言的具体细节超出了我的见识)

开头插入
相关问题