MySQL错误代码:3037为mbrcontains函数提供的GIS数据无效

时间:2016-02-02 09:47:13

标签: mysql asp.net

我在MySQL中有一个工作数据库。我在服务器上创建了备份和恢复,没有任何错误。我查询找到MySQL版本

 SHOW VARIABLES LIKE "%version%";

localhost MySQL版本是:

enter image description here

服务器MySQL版本是:

enter image description here

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 ;

1 个答案:

答案 0 :(得分:0)

花了几个小时后我找到了解决方案。我在sp查询中将contains更改为Find_In_Set

SHOW WARNINGS;

现在它的工作正常。我不知道问题,除非我跑

{{1}}

它给包含被删除请使用mbrcontains但是mbrcontains仍然给出相同的异常只有find_in_set有效