Oracle中SQL命令未正确结束错误排查求助
Oracle SQL "Command Not Properly Ended" 错误解决
你的查询报错的核心原因是**IN子句的语法格式错误**。
Oracle中,IN操作符后的取值列表必须整体包裹在一对括号内,列表中的每个值用逗号分隔。你现在的写法是每个值单独加括号,这不符合Oracle的SQL语法规范。
修正后的查询语句:
SELECT * FROM SPECPARAMLIMITS WHERE PARAMLISTID IN ( 'Bacillus cereus', 'Clostridium perfringens', 'Coliform (0.30 MPN/g LOD)', 'Coliform (3.0 MPN/g LOD)', 'Coliform (CFU/g)', 'Coliform (CFU/mL)', 'E. coli (0.30 MPN/g LOD)', 'E. coli (3.0 MPN/g LOD)', 'E. coli (CFU/g)', 'E. coli (CFU/mL)', 'Enterobacteriaceae', 'Enterobacteriaceae (per g)', 'Enterococci/KF Strep', 'Listeria (per 125 g)', 'Listeria (per 25 g)', 'Mold (10 CFU/g LOD)', 'Mold (100 CFU/g LOD)', 'Mold (CFU/mL)', 'Salmonella (per 100 g)', 'Salmonella (per 1500 g)', 'Salmonella (per 25 g)', 'Salmonella (per 375 g)', 'Salmonella (per 750 g)', 'Salmonella (per lot)(375g)', 'Standard Plate Count (CFU/g)', 'Standard Plate Count (CFU/mL)', 'Staph aureus (10 CFU/g LOD)', 'Staph aureus (3 CFU/g LOD)', 'Staph aureus coag pos (per g)', 'Staph Enterotoxin (SET)', 'Staph. aureus, Coag (pos)', 'Thermophilic Spore', 'Yeast (10 CFU/g LOD)', 'Yeast (100 CFU/g LOD)', 'Yeast (CFU/mL)' )
你之前尝试的移除单引号、字段括号等操作都没命中问题本质,这个错误完全是IN子句的语法格式不符合Oracle要求导致的,修正后即可正常执行。
内容的提问来源于stack exchange,提问作者Jammer
相关产品推荐
相关产品推荐

