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