【发布时间】:2016-01-11 00:19:32
【问题描述】:
我使用下面的代码从 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 进行选择时,它不返回任何行。 start_week 和 end_week 的值是数字
JOB_NUMBER NOT NULL NUMBER(5)
TYPE NOT NULL NUMBER(1)
START_WEEK NUMBER(5)
END_WEEK NUMBER(5)
查询中可能有什么问题?过去 2 天试图弄清楚这一点。
基本上是检查一行是否存在,如果不存在则插入新行。
【问题讨论】:
-
the value returns doesnt exist是什么意思?您收到错误消息吗?另外,请提供jobs_list的DDL语句、表格的内容以及您为start_week和end_week提供的参数值。 -
首先,您的连接字符串不正确。应该是
sqlplus -s username/password@db。 -
在 SO 帖子中更改时放错了位置
-
提供完整的 shell 脚本以及手动运行时查询的输出。
-
将完整功能添加到帖子中