大家好:
我的导出SQL(名称为cell.sql)如下:
str_temp=` date +"%Y%m%d" `
str_temp1=` date+1 +"%Y%m%d" `
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /opt/BOCO.DAL/NPM/wlan/data/source/cell.lst;
select serverid||' '||bssid||' '||servicetype||' '||scan_start_time||' '||RevReceiveByteNum||' '||RevReceiveByteNum*8/1000/3600||' '||FwdTransmitBytes||' '||FwdTransmitBytes*8/1000/3600
from c_tpd_cnt_bsc_flux_do_zx where scan_start_time>=$str_temp and scan_start_time<$str_temp1 order by scan_start_time;
spool off;
exit
现在的问题是:变量 str_temp和str_temp1处报错,请问正确的怎么写啊??
我的导出SQL(名称为cell.sql)如下:
str_temp=` date +"%Y%m%d" `
str_temp1=` date+1 +"%Y%m%d" `
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /opt/BOCO.DAL/NPM/wlan/data/source/cell.lst;
select serverid||' '||bssid||' '||servicetype||' '||scan_start_time||' '||RevReceiveByteNum||' '||RevReceiveByteNum*8/1000/3600||' '||FwdTransmitBytes||' '||FwdTransmitBytes*8/1000/3600
from c_tpd_cnt_bsc_flux_do_zx where scan_start_time>=$str_temp and scan_start_time<$str_temp1 order by scan_start_time;
spool off;
exit
现在的问题是:变量 str_temp和str_temp1处报错,请问正确的怎么写啊??
------使用绑定变量
var :s date;
var :t date;
execute :s:=sysdate;:t:=sysdate+1;
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /opt/BOCO.DAL/NPM/wlan/data/source/cell.lst;
select serverid||' '||bssid||' '||servicetype||' '||scan_start_time||' '||RevReceiveByteNum||' '||RevReceiveByteNum*8/1000/3600||' '||FwdTransmitBytes||' '||FwdTransmitBytes*8/1000/3600
from c_tpd_cnt_bsc_flux_do_zx where scan_start_time>=:s and scan_start_time<:t order by scan_start_time;
spool off;
exitSQL> var s date;
SQL> var t date;
SQL> execute :s:=sysdate;:t:=sysdate+1;PL/SQL procedure successfully completed
s
---------
2010-12-27 下午 06:48:38
t
---------
2010-12-28 下午 06:48:38SQL> select * from dual sysdate between s and t;select * from dual sysdate between s and tORA-00933: SQL 命令未正确结束SQL> select * from dual where sysdate between s and t;select * from dual where sysdate between s and tORA-00904: "T": 标识符无效SQL> select * from dual where sysdate between :s and :t;DUMMY
-----
X
s
---------
2010-12-27 下午 06:48:38
t
---------
2010-12-28 下午 06:48:38SQL>
set pages 50000;
set lines 200;
set trims on;
set heading off;
col date1 new_value str_temp;
col date2 new_value str_temp1;
select to_char(sysdate,'yyyymmdd') date1 from dual;
select to_char(sysdate,'yyyymmdd') date2 from dual;
spool /opt/BOCO.DAL/NPM/wlan/data/source/cell.lst;
select serverid||' '||bssid||' '||servicetype||' '||scan_start_time||' '||RevReceiveByteNum||' '||RevReceiveByteNum*8/1000/3600||' '||FwdTransmitBytes||' '||FwdTransmitBytes*8/1000/3600
from c_tpd_cnt_bsc_flux_do_zx where scan_start_time>=to_date('&str_temp','yyyymmdd') and scan_start_time<to_date('&str_temp1','yyyymmdd') order by scan_start_time;
--如果scan_start_time是字符型就不用to_date转换
spool off;
exit
--直接替换变量
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /opt/BOCO.DAL/NPM/wlan/data/source/cell.lst;
select serverid||' '||bssid||' '||servicetype||' '||scan_start_time||' '||RevReceiveByteNum||' '||RevReceiveByteNum*8/1000/3600||' '||FwdTransmitBytes||' '||FwdTransmitBytes*8/1000/3600
from c_tpd_cnt_bsc_flux_do_zx where scan_start_time>=&str_temp and scan_start_time<&str_temp1 order by scan_start_time;
spool off;
exit
2#的和我的想要的一样呢,修改成和我的表结构一样的,果然可以呢,谢谢拉!
3#的也是可以的呢,只是要手工输入&str_temp and &str_temp1
还有1#的都谢谢了呢