首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将c-shell变量设置为SELECT语句

将c-shell变量设置为SELECT语句
EN

Stack Overflow用户
提问于 2012-06-28 00:42:03
回答 1查看 910关注 0票数 0

我已经编写了一个c-shell脚本来连接到数据库。这已经可以很好地工作了,现在我想调用一个sql脚本来读取和打印cetrain表中的所有值。到目前为止,我的脚本是这样的

代码语言:javascript
复制
#!/bin/csh 


set MYSQL=${MYSQL_HOME}/mysql
${MYSQL} ${CLEDBUSER}

其中,CLEDBUSER设置为环境变量,如so - CLEADBUSER=-uusername -ppassword -Ddatabasename

我能够运行脚本并连接到数据库。当我运行他的脚本时,它会给我一个等待下一个命令的msql代码。因此,我在脚本中添加了一个变量,其中包含用于查询数据库的(SELECT)语句。现在我的脚本如下所示

代码语言:javascript
复制
#!/bin/csh 


set MYSQL=${MYSQL_HOME}/mysql

set SELECTER="SELECT * FROM TB_EARTH_UI;"

${MYSQL} ${CLEDBUSER} ${SELECTER} 

问题是它没有返回所有的行和列,但它返回了mysql中可用命令的列表,提示和默认选项,以及变量和布尔选项。为什么我的SELECT语句没有被读取?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-28 01:50:31

SQL (mysql)期望在其标准输入(例如,当从外壳调用时使用键盘)上有MySQL指令。

你可以这样做:编辑:请忽略,这是离题的

代码语言:javascript
复制
${MYSQL} ${CLEDBUSER} < text_file_of_sql_statements.sql

代码语言:javascript
复制
${MYSQL} ${CLEDBUSER} << EOF
  ${SELECTER}
  # you can add other litteral SQL statements here, or more variables containing SQL statements
EOF

代码语言:javascript
复制
${MYSQL} ${CLEDBUSER} --execute="${SELECTER}"

编辑

我完全误解了行动组的问题。我不知道他试图从一个变量执行SQL语句。我已经编辑了上面的选项(谢谢你outis)。下面是另一个变体:

代码语言:javascript
复制
echo ${SELECTER} | ${MYSQL} ${CLEDBUSER}

此外,--skip-column-names选项可以使您更轻松地解析输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11231140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档