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”

错误的未定义索引将图像上传到服务器

在 Windows-7-x64 上使用 DBI Perl 和 MySql 的未定义 $DBI::errstr

视图页面laravel中的未定义变量[关闭]

C ++ / Eclipse中的未定义符号错误[关闭]