如何使用isql执行存储在shell脚本变量中的SQL语句
因此,我尝试使用isql执行存储在shell脚本变量中的SQL语句 附加通用代码如何使用isql执行存储在shell脚本变量中的SQL语句,shell,isql,isqlquery,Shell,Isql,Isqlquery,因此,我尝试使用isql执行存储在shell脚本变量中的SQL语句 附加通用代码 SQL="select * from Student" EMPLOYEES=`isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER<<EOF $SQL go SQL=“从学生中选择* EMPLOYEES=`isql-U$USERNAME-P$PASSWORD-D$DATABASE-S$SERVER请尝试以下方法: EMPLOYEES=`echo
SQL="select * from Student"
EMPLOYEES=`isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER<<EOF
$SQL
go
SQL=“从学生中选择*
EMPLOYEES=`isql-U$USERNAME-P$PASSWORD-D$DATABASE-S$SERVER请尝试以下方法:
EMPLOYEES=`echo "$SQL" | isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER`
根据这一点,以下措施应起作用:
SQL="select * from Student"
EMPLOYEES=`isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER<<EOF
$SQL
go
EOF
`
最后,要解决报价等潜在问题,可以使用临时文件:
echo "$SQL" > $TMP/sql.$$
EMPLOYEES=`isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER -i $TMP/sql.$$`
rm $TMP/sql.$$
您可能需要为临时文件选择一个更好的名称。您的“此处文档”未关闭(没有带“EOF”的单行),而且您的回退标记也未关闭。这是您的复制/粘贴错误吗?好像我忘记粘贴EOF了。谢谢,原来我在提取这些SQL语句的文件中使用了双引号。取下它们并添加EOF有效。很好,这是一个有趣的解决方案
echo "$SQL" > $TMP/sql.$$
EMPLOYEES=`isql -U $USERNAME -P $PASSWORD -D $DATABASE -S $SERVER -i $TMP/sql.$$`
rm $TMP/sql.$$