Sybase SQL中逗号分隔字符串转NUMERIC(26,6)报错求助
问题排查与解决
先确认变量声明是否正确
必须保证两个变量都已指定正确的数据类型,否则会导致语法解析异常,示例如下:DECLARE @number_str VARCHAR(100) = '123,456789'; -- 根据实际字符串长度调整 DECLARE @number_numeric NUMERIC(26,6);把SELECT赋值改成SET赋值
有些SQL环境下,用SELECT给变量赋值时如果上下文不匹配会报错,换成SET赋值基本能解决问题:SET @number_numeric = CONVERT(NUMERIC(26,6), REPLACE(@number_str, ',', '.'));核对REPLACE函数的拼写和参数顺序
你的写法参数顺序是对的,但如果不小心把REPLACE拼错(比如写成REPLEACE),也会触发语法错误,仔细检查拼写。检查代码上下文
如果这段代码是在存储过程、触发器或者批量执行的语句里,看看前后有没有未闭合的括号、遗漏分号这类语法问题,这些也会让解析器误判当前语句的语法。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

