2017-03-02 70 views
0

我想运行一个SQL脚本,这是一个远程控制箱的手动步骤是连接到带有用户名和密码
然后须藤苏框后,如下 - fa3dev

帐户密码: *******

的sqlplus/as sysdba已

连接XX_fusion_custom

密码*****

@ abc.sql
当我运行这个手动一切工作正常 当我从詹金斯作为远程shell脚本运行如下远程SQL脚本

ssh fa3dev @ server'source .bash_profile; SQLPLUS xx_fusion_custom /密码 '

在控制台它给出的Sql连接和断开

如果用完SSH fa3dev @服务器' 源的.bash_profile; sqlplus xx_fusion_custom/password; sqlplus/as sysdba;连接XX_fusion_custom;从双重选择用户' 它在jenkins控制台中的意外令牌'from'附近给出语法错误,我想我无法连接到数据库,我不能使用SQL插件,因为我不能在jenkins框中安装oracle cleint

+0

Stack Overflow是用于编程和发展问题的站点。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关开发运营的问题?](http://meta.stackexchange.com/q/134306) – jww

回答

0

你的问题是在bash中,在sqlplus退出并且bash启动后执行sql命令select user from dual

您可以通过两种方式解决这个问题:

  1. echo到sqlplus中:

    ssh [email protected] 'source .bash_profile; echo select user from dual | sqlplus xx_fusion_custom/password;sqlplus/as sysdba;connect XX_fusion_custom;'

  2. 传递使用下面的命令文件(这是很好,如果SQL命令是很多并固定)

2.1远程fi乐

ssh [email protected] 'source .bash_profile; sqlplus xx_fusion_custom/password;sqlplus/as sysdba;connect XX_fusion_custom < files_with_commands.sql' 

2.2本地文件(注意文件名前从后thehfilename切换到关闭'的位置):

ssh [email protected] 'source .bash_profile; sqlplus xx_fusion_custom/password;sqlplus/as sysdba;connect XX_fusion_custom < files_with_commands.sql' 
+0

它的工作就像魅力结束'做了一招thankx一吨 –

+0

嗨@ subrata-fouzdar如果这或任何答案已解决您的问题,请点击复选标记考虑[接受它](http://meta.stackexchange.com/q/5234/179419)。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 – berserck

+0

我肯定会接受,但我没有选择接受它,我提出的原因是由国防部标记的问题为脱离主题不知道为什么确切.... –