码迷,mamicode.com
首页 > 数据库 > 详细

MySQL自定义函数调用不出结果

时间:2018-05-16 13:12:57      阅读:822      评论:0      收藏:0      [点我收藏+]

标签:点击   ace   功能   bsp   服务启动   nsf   代码   create   ase   

自定义函数的代码:

DROP FUNCTION IF EXISTS fn_HrStaffBase_GetNameFromidCard
delimiter //
CREATE FUNCTION fn_HrStaffBase_GetNameFromidCard (a VARCHAR(30))
RETURNS VARCHAR(50)
begin
return (SELECT staff_name   FROM hr_staff_base where idCard = a);
END //

-- ---------------------------------------------------------------------------------------------------------------------

函数调用查询:

select fn_HrStaffBase_GetNameFromidCard (‘299012234225‘)

-- ------------------------------------------------------------------------------

出来都是 null,

技术分享图片

处理方法:

新建库时时,必须

也可以修改数据库设置:右键数据库,鼠标点击编辑数据库

要设置数据库如下图:

技术分享图片

原来设置的是:

技术分享图片

数据库只能读取拉丁值,无法读取中文

所以导致调用函数结果为:

技术分享图片

-- ---------------------------------------------------------------

修改数据库设置后 ,查询结果出现:

技术分享图片

#################################################################################

有时候mysql不能建立自定义函数是因为该功能2未开启

输入 show variables like ‘%func%‘; 命令

会看到 log_bin_trust_function_creators 的状态,如果是OFF表示自定义函数功能是关闭的

输入命令 set global log_bin_trust_function_creators=1;

可将 log_bin_trust_function_creators 开启自定义函数功能

但是这样设置是一个临时的方案,因为mysql自动重启后状态又会变为OFF,所以需要在

在服务启动时加上 “--log-bin-trust-function-creators=1 ”参数。 或在my.ini(my.cnf)中的[mysqld]区段中加上 log-bin-trust-function-creators=1。

MySQL自定义函数调用不出结果

标签:点击   ace   功能   bsp   服务启动   nsf   代码   create   ase   

原文地址:https://www.cnblogs.com/Elanlalala/p/9035153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!