2016-02-02 2 views
0

Привет, у меня есть рабочий db в mysql. Я создал резервную копию и восстановил на сервере без каких-либо ошибок. Спросил я, чтобы найти версию MySQLmysql Код ошибки: 3037 Недействительные данные ГИС, предоставляемые функции mbrcontains

SHOW VARIABLES LIKE "%version%"; 



локального MySQL версия
enter image description here

сервера MySQL версии
enter image description here
локальных работают отлично, но теперь в одном из моего зра есть исключение на сервере

Error Code: 3037 Invalid GIS data provided to function mbrcontains. 

Я did'nt найти любую помощь по этому исключению, пока им не с помощью каких-либо данных гео
обновления: Я использую Содержится в моем зре, который создает исключение

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

Потратив несколько часов я нашел решение. Я изменил содержит Find_In_Set в моем запросе sp

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='WMC'; 

    IF ((FIND_IN_SET(@TargetFieldType ,'VARCHAR')= TRUE) 
    OR (FIND_IN_SET(TargetFieldType,'TEXT')= TRUE) 
    OR (FIND_IN_SET(TargetFieldType,'LONTTEXT')= TRUE) 
    OR (FIND_IN_SET(TargetFieldType,'CHAR')= TRUE) ) THEN 
    SET TargetFieldValue = '''' + TargetFieldValue +''''; 
    END IF ; 

сейчас его рабочий штраф. Я не знаю, проблема еще исключением случаев, когда я бегу

SHOW WARNINGS; 

дает Содержит в depricated, пожалуйста, используйте mbrcontains но mbrcontains все еще дают то же исключение только FIND_IN_SET работает

Смежные вопросы