gpt4 book ai didi

mysql - 如何将shell脚本变量作为OUT参数传递给mysql存储过程?

转载 作者:行者123 更新时间:2023-11-29 16:08:44 24 4
gpt4 key购买 nike

我想将 shell 脚本变量作为 OUT 参数传递给 Mysql 存储过程。存储过程如下:

SET sql_mode = 'ANSI_QUOTES';
DELIMITER $$
CREATE PROCEDURE GetTypeSchemaFromAttributeTable(OUT ColumnType VARCHAR (512), OUT ColumnCharset VARCHAR(128), OUT ColumnCollationName VARCHAR(128))
BEGIN
SELECT `COLUMN_TYPE` AS ColumnType, `CHARACTER_SET_NAME` AS ColumnCharset, `COLLATION_NAME` AS ColumnCollationName FROM information_schema.COLUMNS WHERE `TABLE_SCHEMA`='example' AND `TABLE_NAME`='Attribute' AND `COLUMN_NAME`='Type';
END $$
DELIMITER ;

然后是我的 shell 脚本:

mysql --host="blabla" --user="blabla" --password="blabla" --database="blabla" -e "CALL GetTypeSchemaFromAttributeTable(@type, @charset, @collation)"
echo $type
echo $charset
echo $collation

但不幸的是,它不起作用。所有这些变量都是空的。有人可以建议我应该做什么吗?

最佳答案

将 mysql 命令的输出分配给变量,然后使用 awk 或其他实用程序拆分它mysql中使用-sN隐藏列名和表布局


output=`mysql --host="blabla" --user="blabla" --password="blabla" --database="blabla" -sN -e "CALL GetTypeSchemaFromAttributeTable(@type, @charset, @collation)"`

$type=`echo $output | awk '{ print $1 }'`
$charse=`echo $output | awk '{ print $2 }'`
$collation=`echo $output | awk '{ print $3 }'`


echo $type
echo $charset
echo $collation

关于mysql - 如何将shell脚本变量作为OUT参数传递给mysql存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com