在perl中通过ssh运行sqlplus选择查询的问题

时间:2014-07-16 11:42:44

标签: perl ssh sqlplus

我正在尝试与数据库建立sql连接并执行select查询。

我的限制是我的测试用例在一台我没有sqlplus的机器上,我必须在安装了sqlplus的另一台机器上执行它。

 my $cmd =  "export ORACLE_HOME=\"/u01/database/idmdb/\";export ORACLE_SID=\"OIMDB\";$sqlpluscmd <<EOF";
                    #select VERSION from schema_Version_registry where COMP_ID='IAU';
                    #exit;
                    #EOF";                                                                               
 print "cmd=$cmd\n";
 my $rtValue=undef;
 my $user_name="aime";
 my $host_name="slc06vno.us.oracle.com";
 if ($cmd =~ /run_as_root/) {
  $rtValue= `ssh -x $user_name\@$host_name $cmd`;
}else{
$rtValue= `ssh -x $user_name\@$host_name 'sh -lc \"$cmd\"' `;
 }

它工作正常,连接已建立,但如果我取消注释选择查询,我会收到错误:

 cmd=/u01/database/idmdb/bin/sqlplus -LOGON FA_OIM/Fusionapps1@OIMDB <<EOF
                    select VERSION from schema_Version_registry where COMP_ID='IAU';
                    exit;
                    EOF
  Unmatched ".
  select: Command not found.
  Unmatched ".
  rtValue=

0 个答案:

没有答案