Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用isql执行存储在shell脚本变量中的SQL语句_Shell_Isql_Isqlquery - Fatal编程技术网

如何使用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

因此,我尝试使用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" | 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.$$