sudhakarthikeyan Ответов: 1

Ошибка Mysql workbench в моей функции


Мой код sql workbench выглядит следующим образом

База данных Mysql workbench

Создать функцию fn_parsehtml
(
p_htmldesc longtext
)
возвращает longtext
начать
объявить v_first инт; инт v_last объявить; объявлять v_len инт;
set v_first = instr('<',p_htmldesc);
set v_last = instr('>',p_htmldesc,instr('<',p_htmldesc));
установить v_len = (v_last - v_first) + 1;
а v_first и gt; 0 и v_last и gt; 0 и v_len &ГТ; 0
делать
-- -Функция Stuff используется для вставки строки в заданную позицию и удаления количества символов, указанных в исходной строке
набор p_htmldesc = вставить(p_htmldesc,v_first,v_len,");
SET v_first = instr('<',p_htmldesc);
set v_last = instr('>',p_htmldesc,instr('<',p_htmldesc));
установить v_len = (v_last - v_first) + 1;
конец пока;
вернуться функция ltrim(функция rtrim(p_htmldesc));
конец;

когда я выполняю показывает ошибку следующим образом

Код Ошибки: 1582. Неверное количество параметров при вызове собственной функции 'instr'

Что я уже пробовал:

Мой код sql workbench выглядит следующим образом

База данных Mysql workbench

Создать функцию fn_parsehtml
(
p_htmldesc longtext
)
возвращает longtext
начать
объявить v_first инт; инт v_last объявить; объявлять v_len инт;
set v_first = instr('<',p_htmldesc);
set v_last = instr('>',p_htmldesc,instr('<',p_htmldesc));
установить v_len = (v_last - v_first) + 1;
а v_first и gt; 0 и v_last и gt; 0 и v_len &ГТ; 0
делать
-- -Функция Stuff используется для вставки строки в заданную позицию и удаления количества символов, указанных в исходной строке
набор p_htmldesc = вставить(p_htmldesc,v_first,v_len,");
SET v_first = instr('<',p_htmldesc);
set v_last = instr('>',p_htmldesc,instr('<',p_htmldesc));
установить v_len = (v_last - v_first) + 1;
конец пока;
вернуться функция ltrim(функция rtrim(p_htmldesc));
конец;

когда я выполняю показывает ошибку следующим образом

Код Ошибки: 1582. Неверное количество параметров при вызове собственной функции 'instr'

1 Ответов

Рейтинг:
2

Jochen Arndt

Сообщение об ошибке совершенно ясно:
Существует больше или меньше параметров, чем допустимо для этой функции instr.

Взгляните на документацию по функциям: MySQL :: MySQL 5.7 Справочное Руководство :: 12.5 Строковые Функции[^]: instr требуется два параметра.

Но вы проходите мимо трех здесь:

set v_last = instr('>',p_htmldesc,instr('<',p_htmldesc));

[РЕДАКТИРОВАТЬ]
Вы, вероятно, хотите использовать
set v_first = instr(p_htmldesc, '<');
set v_last = instr(p_htmldesc, '>');
вместо. Обратите также внимание, что первый параметр-это полная строка, а второй-искомая подстрока. Таким образом, вы должны обменять параметры по сравнению с вашим кодом.
[/РЕДАКТИРОВАТЬ]