2016-09-15 77 views
1

我将此存储过程从mssql移植到mysql,并且出现错误,说我缺少右括号,我似乎无法找到原因。丢失右括号

CREATE PROCEDURE get_oids (IN sys_info VARCHAR(255)) 
BEGIN 
    SELECT oids.id, oids.attribute, oids.description_oid, oids.mib_name, oids.classifier 
    FROM oids 
    INNER JOIN mib_mappings 
     ON mib_mappings.name = oids.mib_name 
    WHERE ((sys_info LIKE '%' + mib_mappings.model + '%' AND sys_info LIKE '%' + mib_mappings.vendor + '%') OR mib_mappings.model = 'ALL') 
     AND oids.nodeType = 'CHILD' AND oids.descriptionOID is not null 
    GROUP BY oids.id, oids.attribute, oids.description_oid, oids.mib_name, o.classifier 
END 
+0

@马特这一切都已经,还我猜我在GROUP BY子句的最后需要分号 – DorkMonstuh

回答

0

可以请你检查它,我认为这个问题是一个像,并在组由年底失踪分号:

CREATE PROCEDURE get_oids (IN sys_info VARCHAR(255)) 
BEGIN 
SELECT oids.id, 
    oids.attribute, 
    oids.description_oid, 
    oids.mib_name, 
    oids.classifier 
FROM oids 
INNER JOIN mib_mappings ON mib_mappings.name = oids.mib_name 
WHERE ((sys_info LIKE CONCAT('%',mib_mappings.model,'%') 
    AND sys_info LIKE CONCAT('%',mib_mappings.vendor,'%') 
    OR mib_mappings.model = 'ALL') 
    AND oids.nodeType = 'CHILD' 
    AND oids.descriptionOID IS NOT NULL 
GROUP BY oids.id, oids.attribute, oids.description_oid, oids.mib_name, o.classifier; 
END 
+0

刚刚尝试过,它不起作用 – DorkMonstuh

+0

您能否仅仅提供带有创建脚本的表结构,以便我可以正确地在此查看。 – Susang

+0

工作,对不起,我没有看到CONCAT()函数被改变 – DorkMonstuh