使用oracle sql plus在korn shell中返回select查询的值

时间:2015-10-13 09:48:56

标签: oracle unix sqlplus ksh

我使用下面的代码从oracle返回值。但无法得到  期望的结果。

编辑:发布具有实际值的函数。

function Check_Job_Info 
{
    print "Start week -Check_Job_Info : $start_week " 1>&2;
    print "End Week - Check_Job_Info : $end_week " 1>&2;
    JOBNUM=`sqlplus -s username/pwd@db <<EOF
    SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
    SELECT job_number FROM jobs_list WHERE start_week = 1347 and end_week = 1347 ;
    EXIT;
    EOF`
    print "Job Exists  : $JOBNUM " 1>&2;
}

打印的值也与硬编码值

相同

问题是返回的值实际上并不存在于表中。因此它返回job_number,表示1000.当我使用1000执行select时,它不返回任何行。 start_week和end_week的值是数字

JOB_NUMBER                                NOT NULL NUMBER(5)
 TYPE                                      NOT NULL NUMBER(1)
 START_WEEK                                         NUMBER(5)
 END_WEEK                                           NUMBER(5)

查询中可能出现什么问题?试图在过去的两天内解决这个问题。

基本上检查行是否存在以及是否插入新行。

1 个答案:

答案 0 :(得分:1)

sqlplus命令中的参数顺序错误。它应该是username/password@db。尝试手动连接到数据库,你就会明白。

JOBNUM=`sqlplus -s username/password@db <<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT job_number FROM jobs_List WHERE start_week = $start_week and end_week = $end_week ;
EXIT;
EOF`