虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > DB2数据库 > 关于DB2中使用SUBSTR函数出现“SUBSTR函数的第二个或第三个自变量超出范围。SQLSTATE

关于DB2中使用SUBSTR函数出现“SUBSTR函数的第二个或第三个自变量超出范围。SQLSTATE
类别:DB2数据库   作者:码皇   来源:小强的博客     点击:

关于DB2中使用SUBSTR函数出现SUBSTR函数的第二个或第三个自变量超出范围。 SQLSTATE=22011错误的解决方法对于表A,定义如下:CREATE TABLE A( REMARK VARCHAR(20));INSERT INTO A(REMARK) VALUES(& 3
关于DB2中使用SUBSTR函数出现“SUBSTR函数的第二个或第三个自变量超出范围。  SQLSTATE=22011”错误的解决方法   对于表A,定义如下: CREATE TABLE A (     REMARK VARCHAR(20) ); INSERT INTO A(REMARK) VALUES('ABC'); INSERT INTO A(REMARK) VALUES('DEF'); INSERT INTO A(REMARK) VALUES('HI#JK'); 执行SQL:SELECT SUBSTR(REMARK,1,2) AS REMARK FROM A;返回数据如下: ------------------ | REMARK         | ------------------ | AB             | | DE             | | HI             | ------------------ 而执行SQL:SELECT SUBSTR(REMARK,1, (LOCATE( '#', REMARK) -1 ) AS REMARK FROM A; 却出现错误:SUBSTR 函数的第二个或第三个自变量超出范围。  SQLSTATE=22011 查看LOCATE函数返回的结果可知,部分记录中SUBSTR函数的第三个参数为-1,而导致变量超出范围。   执行SQL:SELECT LOCATE( '#', REMARK) -1 AS LOC FROM A;返回数据如下: ------------------ | LOC            | ------------------ | -1             | | -1             | | 2              | ------------------ 所以SUBSTR与LOCATE函数一起使用时,对于要定位的字符不存在时,需要做特殊处理。
相关热词搜索: 关于 使用 SUBSTR