我在MySQL中有一个工作数据库。我在服务器上创建了备份和恢复,没有任何错误。我查询找到MySQL版本
SHOW VARIABLES LIKE "%version%";
localhost MySQL版本是:
服务器MySQL版本是:
localhost工作正常,但现在在我的一个存储过程中,服务器上存在异常:
Error Code: 3037 Invalid GIS data provided to function mbrcontains.
我没有使用任何地理数据时,我没有找到任何有关此异常的帮助。
我在我的存储过程中使用包含创建异常的包含
SELECT Data_Type INTO TargetFieldType FROM information_schema.COLUMNS
WHERE information_schema.COLUMNS.COLUMN_NAME= TargetFieldName
AND information_schema.COLUMNS.TABLE_NAME=TableName
AND information_schema.COLUMNS.TABLE_SCHEMA=dbName;
IF (( CONTAINS(@TargetFieldType ,'VARCHAR')= TRUE )
OR (CONTAINS(TargetFieldType,'TEXT')= TRUE )
OR (CONTAINS(TargetFieldType,'LONTTEXT')= TRUE)
OR (CONTAINS(TargetFieldType,'CHAR')= TRUE) ) THEN
SET TargetFieldValue = '''' + TargetFieldValue +'''';
END IF ;
答案 0 :(得分:0)
花了几个小时后我找到了解决方案。我在sp查询中将contains更改为Find_In_Set
SHOW WARNINGS;
现在它的工作正常。我不知道问题,除非我跑
{{1}}
它给包含被删除请使用mbrcontains但是mbrcontains仍然给出相同的异常只有find_in_set有效