还是有点问题,如下: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 22 语法哪里不对吗
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 22
-- drop FUNCTION GETVLINKHEAD; DELIMITER $$ create FUNCTION GETVLINKHEAD(PFLAG VARCHAR(3), IFLAG VARCHAR(3) ) RETURNS VARCHAR(400) BEGIN DECLARE V_SQLHEAD VARCHAR(400) DEFAULT ''; DECLARE PRFLAG VARCHAR(3); DECLARE UFLAG VARCHAR(3); SET UFLAG = UPPER(IFLAG); SET PRFLAG = UPPER(PFLAG); IF (PRFLAG = 'ALL') and (UFLAG IN ('FJP', 'FJR', 'FJS') ) THEN SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_FJ(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) '; ELSEIF (PRFLAG = 'ALL') and ( UFLAG IN ('PLP', 'PLR', 'PLS')) THEN SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_PRMY(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) '; ELSEIF (PRFLAG = 'ALL') and (UFLAG IN ('TKP', 'TKR', 'TKS')) THEN SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_WY (POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, TYPE, WEIYUTYPE,LINK) '; elseIF (PRFLAG = 'ONE') and (UFLAG IN ('FJP', 'FJR', 'FJS')) THEN SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_FJ(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) '; ELSEIF (PRFLAG = 'ONE') and (UFLAG IN ('PLP', 'PLR', 'PLS')) THEN SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_PRMY(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) '; ELSEIF (PRFLAG = 'ONE') and (UFLAG IN ('TKP', 'TKR', 'TKS')) THEN SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_WY (POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, TYPE, WEIYUTYPE,LINK) '; END IF; RETURN (V_SQLHEAD); END $$ 总算搞定了,原来判断ELSEIF要连起来写,连起来写执行就通过了,单关键字在工具是灰色的。应该是工具不好使吧。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 22
语法哪里不对吗
corresponds to your MySQL server version for the right syntax to use near '' at
line 22
DELIMITER $$
create FUNCTION GETVLINKHEAD(PFLAG VARCHAR(3), IFLAG VARCHAR(3) ) RETURNS VARCHAR(400)
BEGIN
DECLARE V_SQLHEAD VARCHAR(400) DEFAULT '';
DECLARE PRFLAG VARCHAR(3);
DECLARE UFLAG VARCHAR(3);
SET UFLAG = UPPER(IFLAG);
SET PRFLAG = UPPER(PFLAG);
IF (PRFLAG = 'ALL') and (UFLAG IN ('FJP', 'FJR', 'FJS') ) THEN
SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_FJ(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) ';
ELSEIF (PRFLAG = 'ALL') and ( UFLAG IN ('PLP', 'PLR', 'PLS')) THEN
SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_PRMY(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) ';
ELSEIF (PRFLAG = 'ALL') and (UFLAG IN ('TKP', 'TKR', 'TKS')) THEN
SET V_SQLHEAD= 'INSERT INTO CT_TP_SRZ_WY (POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, TYPE, WEIYUTYPE,LINK) ';
elseIF (PRFLAG = 'ONE') and (UFLAG IN ('FJP', 'FJR', 'FJS')) THEN
SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_FJ(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) ';
ELSEIF (PRFLAG = 'ONE') and (UFLAG IN ('PLP', 'PLR', 'PLS')) THEN
SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_PRMY(POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, INSURANCE, LINK) ';
ELSEIF (PRFLAG = 'ONE') and (UFLAG IN ('TKP', 'TKR', 'TKS')) THEN
SET V_SQLHEAD= 'INSERT INTO TEMP_ONE_CT_TP_SRZ_WY (POLICYCODE, CASENUMBER, SCORES, CREATDATE, GRADE, OPERATWAY, TYPE, WEIYUTYPE,LINK) ';
END IF;
RETURN (V_SQLHEAD);
END
$$
总算搞定了,原来判断ELSEIF要连起来写,连起来写执行就通过了,单关键字在工具是灰色的。应该是工具不好使吧。