首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sql中声明bash变量

在sql中声明bash变量
EN

Stack Overflow用户
提问于 2016-05-15 01:49:13
回答 2查看 819关注 0票数 2

如何在bash命令中声明变量。看"?“

我以为我们几乎可以运行任何bash声明!或者排在前面的主机

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

sqlplus scott/tiger@orcl << EOF

! export v10="Hi"                Doesn't work, why?
! echo $v10                      Doesn't work, why?  

! echo "Done"                 Works perfectly and also other bash commands

select * from dept;           Works perfectly
exit
EOF

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-15 02:17:49

@jordanm所说的“可能”就是正在发生的事情。当您从sqlplus中指定主机命令时,生成一个单独的shell进程,由该进程执行命令,然后终止该进程,并将控制返回到sqlplus。在子shell进程中设置的任何环境变量只有在它内部才是好的,所以当它终止时,它们就消失了。

至于你的具体台词“工作”和“不工作”。"export v10=“”Hi“确实可以工作,但是没有标准的'export‘命令显示,正如所解释的那样,一旦子进程完成并控制返回到sqlplus,变量v10就不再存在了。"echo $v10”也能工作,但是因为它是一个新的$v10进程,所以它对$v10没有价值,所以没有什么可回波的。

您试图通过在sqlplus中设置环境变量来完成什么任务?

票数 2
EN

Stack Overflow用户

发布于 2016-05-17 20:30:46

找到了,我要做的就是

<< EOF

代码语言:javascript
复制
     whenever sqlerror exit failure rollback         whenever oserror exit failure rollback         @scriptname.sql         EXIT EOF
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37233709

复制
相关文章

相似问题

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