Shell脚本从文件,并把值仅在通过shell脚本条款
#! /bin/bash
sqlplus -s <username>/<passwd>@dbname << EOF
set echo on
set pagesize 0
set verify off
set lines 32000
set trimspool on
set feedback off
SELECT *
FROM <dbname>.<tablename1> tr
LEFT JOIN <tablename2> t2 ON t2.id2 = tr.id1
LEFT JOIN <tablename3> t3 ON t3.id2 = tr.id1
LEFT JOIN <tablename4> t4 ON t4.id2 = tr.id1
WHERE tr.TIMESTAMP > SYSDATE - 75/1440
AND tr.TIMESTAMP <= SYSDATE - 15/1440
AND t2.value in (value1, value2, etc...)
ORDER BY timestamp;
exit;
EOF
现在,目的是在t2.value列读取32000个读取值。这些值只是像1234,4567,1236等数字我想我应该把这些数字在一个单独的文件,然后读取该文件在t2.value。但是我希望SQL只能执行一次,而不是32000次。你能告诉我这怎么可能?我怎样才能得到t2.value中的值(由逗号分隔)(通过一些循环,可能是阅读行)?
我在标准输出错误的错误: ORA-00972:标识符太长 – ErAB 2010-10-22 05:54:55
ORA-00972来的时候,你已经使用了很长的标识符,> 38字符。但我们不会在任何地方更改任何标识符(列,表名)。你做了什么改变? – codaddict 2010-10-22 05:57:36
我会粘贴完整的脚本。 – ErAB 2010-10-22 06:07:31