簡體   English   中英

如何在shell腳本中插入mysql存儲過程的結果

[英]How to insert the result of mysql stored procedure in shell script

我是Shell腳本的新手,我想調用MySQL存儲過程並將該存儲過程的結果存儲在一個變量中,並傳遞該變量以插入查詢以將值存儲在另一個數據類型為JSON的表中。

Shell腳本文件:

selectvar="CALL lead_status_sale(input1,input2,@total,@valid,@data);"

selectvar1="select @total,@valid,@data;"

mysql --user=root --password=xxx db1 << eof 
$selectvar
insertvar = $selectvar1
eof

mysql --user=root --password=xxx db2 << eof 
insert into day values $insertvar;
eof

如果我在進行插入查詢時調用存儲過程可以正常工作,則出現錯誤

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@valid @qualified  @sales  @closedwon  @deal   @cold_lead  @business   @ga @ga_valid   @ga' at line 1

嘗試以下操作:如果您的SELECT返回多個字符串:

#!/bin/bash

selectvar="CALL lead_status_sale(input1,input2,@total,@valid,@data); select @total,@valid,@data;"
insertvar=(`mysql --user=root --password=xxx db1 --execute="${selectvar}" | sed '1d'`)
for i in "${insertvar[@]}"
do
    mysql --user=root --password=xxx db2 --execute="insert into day values ${i};"
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM