怎样用MySQL创建function

怎样用MySQL创建function,第1张

语法:Create function function_name(参数列表)returns返回值类型

函数函数名,应合法的标识符,不应与系统关键字冲突。

一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。

参数部分,由参数名和参数类型组成。

返回值类类型.注意,一定要有return返回值语句。

创建第一个函数:

mysql>DROP FUNCTION IF EXISTS SP_FUNC_DBDH_ONE  -- 删掉已存在函数 DELIMITER &&-- 定义分隔符,必须要有 ,本例为 &&可以为得数字符,例如: $$,%%,**

mysql>CREATE FUNCTION SP_FUNC_DBDH_ONE( PARA_VAR varchar(30)) -- 多个参数用,分割 参数

的类型必须是mysql列存在的类型

->RETURNS VARCHAR(100)                  -- 指定返回值类型,如果你不确定返回

文本长度,可以使用text

->BEGIN

->    DECLARE NAYIBU_FIR VARCHAR(30) DEFAULT 'THIS IS MY FIRST,'  -- 定义变量,设置默认值

->    SET NAYIBU_FIR = concat(NAYIBU_FIR,PARA_VAR)

->    RETURN NAYIBU_FIR                                -- 返回值

->END $$                                      

后面有你在前面定义的分割符号

Query OK, 0 rows affected (0.00 sec)

mysql>DELIMITER &&

调用自定义函数,输出结果如下:

mysql>SELECT SP_FUNC_DBDH_ONE('PROGRAM')

+------------------------------+

| SP_FUNC_DBDH_ONE('PROGRAM') |

+------------------------------+

| 'THIS IS MY FIRST, PROGRAM        |

+------------------------------+

1 row in set (0.00 sec)

从错误提示看,使用的是 MySql 数据库,错误原因是由于 SQL 查询语句的语法错误,错误位置在 [zddw_jbxx] 附近。

建议:

将 [zddw_jbxx]  修改为 zddw_jbxx,即去掉 []。

  2. 先将生成后 sql 语句,到 mysql 里先执行一下,如果正确再使用。

UniDAC?我也是一直用的这个,你是不是在设计的时候直接用Connection连接数据库了?最后编译的时候要断开,不断开的话,它会直接以你在设计期间的设计去连接那个数据库。

可以试试ZeosLib

.

ZeosLib

是一组可以在

Delphi、FreePascal、Kylix

C++

Builder

中使用的数据库访问组件,支持包括

MySQL,

PostgreSQL,

Interbase,

Firebird,

MS

SQL,

Sybase,

Oracle

SQLite

在内的数据库系统。著名的

HeidiSQL

数据库管理工具就是使用该组件来连接MySQL数据库。目前此版本已经支持delphi

&

C++Builder

XE.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7206859.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存