mamp+如何创建一个mysql函数?

kknvjkwl  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(261)

有人给了我一个mysql函数:

CREATE DEFINER=`root`@`localhost` FUNCTION `SQL_DéchiffreDonnée`(Val TEXT) RETURNS text CHARSET utf8
BEGIN
    DECLARE key_str TEXT CHARSET utf8;
    DECLARE init_vector TEXT CHARSET utf8;
    SET block_encryption_mode = 'aes-256-cbc';
    SET init_vector = CAST('---*QZF' AS BINARY); -- RANDOM_BYTES(16);
    SET key_str = SHA2('-----*qfw',512);

RETURN CONVERT(AES_DECRYPT(unhex(Val),key_str,init_vector) USING  utf8);
    END

我找不到在mamp/mysql接口中注册它的位置。有什么提示吗?
编辑
我设法通过mysqld存储函数:

/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot
mysql>use database_name;
mysql>DELIMITER $$
mysql> CREATE DEFINER=`root`@`localhost` FUNCTION `SQL_DchiffreDonne`(Val TEXT) RETURNS text CHARSET utf8
    -> BEGIN
    ->     DECLARE key_str TEXT CHARSET utf8;
    ->     DECLARE init_vector TEXT CHARSET utf8;
    ->     SET block_encryption_mode = 'aes-256-cbc';
    ->     SET init_vector = CAST('---*sdf' AS BINARY); -- RANDOM_BYTES(16);
    ->     SET key_str = SHA2('---***',512);
    ->
    ->                RETURN CONVERT(AES_DECRYPT(unhex(Val),key_str,init_vector) USING  utf8);
    -> END
    -> ;
    -> $$

但现在我不能调用函数:

SELECT SQL_DchiffreDonne(NNS) from table_name;

给我一个错误:

SQL query: Documentation
SELECT SQL_DchiffreDonne(NNS) from compte_courant LIMIT 0, 30
MySQL said: Documentation

# 1411 - Incorrect string value: 'Val@0' for function unhex

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题