mySQL中的未定义游标
Posted
技术标签:
【中文标题】mySQL中的未定义游标【英文标题】:UNDEFINED Cursor in mySQL 【发布时间】:2013-09-15 17:05:32 【问题描述】:我正在尝试在 mysql 中创建函数,但收到一条错误消息:UNDEFINED Cursor :REVERSE。
下面是我的代码:
create function check_data (v_dcrpath VARCHAR(4000)) RETURNS VARCHAR(4000)
BEGIN
DECLARE v_dcrpath_value varchar(1000);
DECLARE REVERSE CURSOR FOR select_statement
OPEN REVERSE 1..length(v_dcrpath)
loop
if substr(v_dcrpath,i,1) = '/' then
v_dcrpath_value := substr(v_dcrpath, i+1);
exit;
end if;
end loop;
IF v_dcrpath_value = 'data' then
return 'true';
else
return 'false';
end if;
fetch into;
end;
close ;
任何建议
【问题讨论】:
这是要查找路径中最后一个名为 data 的文件夹吗? MySQL 和 PL/SQL 非常不同,因此您需要重写一些逻辑。例如,MySQL 不支持..
范围运算符。
是的,我正在尝试使用函数获取最后一个文件夹路径,但找不到正确的代码。
Like '%/data' 或 like '%/data/%' 怎么样?
它不适用于此示例数据。 /templatedata/composite-item/page/data/3_Local/EU/fr_BE/aqws_dddddd_fr_BE_8004 | | /templatedata/composite-item/page/data/3_Local/EU/fr_BE/Electronics/rvw_fr_BE_12238 | | /templatedata/composite-item/page/data/3_Local/EU/fr_BE/Localtest_fr_BE_12153 | | /templatedata/composite-item/page/data/3_Local/EU/fr_BE/newdcrvalid_fr_BE_12417 | | /templatedata/composite-item/page/data/3_Local/EU/fr_BE/page_load_3_fr_BE_11 | | /templatedata/composite-item/page/data/3_Local/EU/fr_BE/ss1_fr_BE_12051 |
【参考方案1】:
我认为您可能错过了定义光标REVERSE
。尝试像这样声明它
DECLARE REVERSE CURSOR FOR select_statement
【讨论】:
现在出现错误 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的“select_statement OPEN REVERSE 1..length(v_dcrpath) loop if subs”附近使用正确的语法 你能用你正在使用的最新代码更新你的问题吗? 天啊!!! select_statement 表示您希望光标在其上执行的选择语句!!! 哦。看到我对sql中的函数知之甚少。我想执行像 > 我需要创建这样的查询函数类型。如果可能的话,您能否对该函数进行必要的更改。 嗨,您可以发布代码或修改现有的代码,这将适用于我的场景。以上是关于mySQL中的未定义游标的主要内容,如果未能解决你的问题,请参考以下文章
qt:对“mysql_something@nr”的未定义引用
带有 pdo 的未定义类常量“MYSQL_ATTR_INIT_COMMAND”