博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql delimiter
阅读量:5838 次
发布时间:2019-06-18

本文共 740 字,大约阅读时间需要 2 分钟。

hot3.png

今天让公司的DBA鄙视了一顿,也是我做的不好。很多环境的数据库,命令行比可视化工具常见。我提交了以下脚本,结果命令行执行报错。

CREATE FUNCTION func_split_str(  x VARCHAR(5000),  delim VARCHAR(12),  pos INT)RETURNS VARCHAR(500)BEGINRETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),       delim, '');END

原因是:delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号(;)。如果一次输入的语句较多,并且语句中间有分号,这时候mysql客户端认为当前语句已经执行完毕,其实未执行完毕,这时需要新指定一个特殊的分隔符。

改为以下sql,正常运行。

DELIMITER $$CREATE FUNCTION func_split_str(  x VARCHAR(5000),  delim VARCHAR(12),  pos INT)RETURNS VARCHAR(500)BEGINRETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),       delim, '');END$$DELIMITER ;

转载于:https://my.oschina.net/friendship/blog/663198

你可能感兴趣的文章
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
java只能的round,ceil,floor方法的使用
查看>>
新开的博客,为自己祝贺一下
查看>>
采用JXL包进行EXCEL数据写入操作
查看>>
将txt文件转化为json进行操作
查看>>
我的2014-相对奢侈的生活
查看>>
Java设计模式
查看>>
华为OJ 名字美丽度
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
基本概念复习
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
【数据库】
查看>>
WindowManager.LayoutParams 详解
查看>>
Linux中rc的含义
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
sql 内联,左联,右联,全联
查看>>