免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1641 | 回复: 5
打印 上一主题 下一主题

关于mysql存储过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-12 16:22 |只看该作者 |倒序浏览
请各位,怎样才能在程序执行中导入存储过程?
我的方法是mysql -h localhost -u root -p test<test.sql,
但是当test.sql包含存储过程就会出错,错误内容为
E:\xampp\mysql\bin>mysql -h localhost -u root -p test<"d:\test.sql"
Enter password:
ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear '' at line 1

论坛徽章:
0
2 [报告]
发表于 2009-08-12 16:53 |只看该作者
PS:mysql版本和系统应该都没有问题,因为同样的存储过程语句在MySQL Query Brower可以执行

论坛徽章:
0
3 [报告]
发表于 2009-08-12 23:57 |只看该作者
把d:\test.sql的内容完整地贴出来吧

论坛徽章:
0
4 [报告]
发表于 2009-08-13 16:35 |只看该作者
估计是delimiter 的问题,或者是版本。。

论坛徽章:
0
5 [报告]
发表于 2009-08-14 11:07 |只看该作者
原帖由 bitterness 于 2009-8-13 16:35 发表
估计是delimiter 的问题


这个面大。

问问题问的没头没尾的,真不知道怎么回答。

论坛徽章:
0
6 [报告]
发表于 2009-08-19 00:49 |只看该作者
DELIMITER ;;
CREATE
FUNCTION `func_get_split_string`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS
varchar(255) CHARSET utf8BEGIN
declare result varchar(255) default
'';
  
set result =
reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));
  
return result;
END ;;
DELIMITER ;
DELIMITER $$
DROP
FUNCTION
IF
EXISTS `func_get_split_string_total` $$
CREATE
FUNCTION `func_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5)) RETURNS
int(11)
BEGIN
return
1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END $$
DELIMITER ;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP