首页 文章

来自jenkins的远程sql脚本

提问于
浏览
0

我想在连接到带有用户ID和密码的框后,运行一个远程框中的sql脚本,手动步骤如下所示
然后sudo su - fa3dev

户口密码:*******

sqlplus / as sysdba

连接XX_fusion_custom

密码*****

@ abc.sql
当我手动运行时,所有工作正常当我从jenkins作为远程shell脚本运行时,如下所示

ssh fa3dev@server 'source .bash_profile; sqlplus xx_fusion_custom/password'

在控制台中,它使Sql连接和断开连接

如果我运行 ssh fa3dev@server 'source .bash_profile; sqlplus xx_fusion_custom/password;sqlplus / as sysdba;connect XX_fusion_custom;select user from dual' 它在jenkins控制台中出现意外令牌`from'附近的语法错误,我想我无法连接到数据库,这里的任何帮助都会非常适合我,我无法使用SQL插件,因为我无法安装oracle cleint在詹金斯盒子里

1 回答

  • 0

    你的问题是在bash中,sql命令 select user from dual 正在执行sqlplus退出并且bash选中它 .

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

    • echo 进入sqlplus:

    ssh fa3dev@server 'source .bash_profile; echo select user from dual | sqlplus xx_fusion_custom/password;sqlplus / as sysdba;connect XX_fusion_custom;'

    • 使用该命令传递文件(如果SQL命令很多并且已修复,这很好)

    2.1远程文件

    ssh fa3dev@server 'source .bash_profile; sqlplus xx_fusion_custom/password;sqlplus / as sysdba;connect XX_fusion_custom < files_with_commands.sql'
    

    2.2本地文件(注意关闭 ' 的位置从hfilename之后变为文件名之前):

    ssh fa3dev@server 'source .bash_profile; sqlplus xx_fusion_custom/password;sqlplus / as sysdba;connect XX_fusion_custom < files_with_commands.sql'
    

相关问题