select table_name from user_tables where table_name like 'JIFEI.BILL_E_20_' || to_char(sysdate,'yyyymmdd')
解决方案 »
- 请教如何在ubuntu12.04上安装oracle11g
- ip地址改动后,怎样启动dbconsole,有什么好办法,试了几个方法都不行。100分急求。
- 菜鸟请指教 创建视图问题
- 为什么会报“无效字符”的错??????哪里错了!!!谢谢啊……
- 怎样从varchar2数据中获得每一个ascii字符?
- 求大虾讲解 start with connect by 问题
- 如何编写Oracle建库脚本?
- 请教高手:我具有管理员权限,能知道另一管理员的密码吗?只能修改他?
- 菜鸟求救(一) Help!Help!Help!Help!
- 如何判断oracle数据表,一个字段中是否含有回车符,有没有现成的函数,急~~
- 10G客户端连不上9i的数据库
- 在ORACLE中怎么更改字段名?
----------
这样不行吧,to_char(sysdate,'yyyymmdd')是今天的日期。
where ... AND 后8位 in (select 日期 from 日期表)
这样处理。
( SUBSTR(table_name,1,4) BETWEEN '1900' AND '2004' ) AND
(SUBSTR(table_name,5,2) BETWEEN '01' AND '12') AND
(SUBSTR(table_name,7,2) BETWEEN '01' AND '30') AND
table_name like 'JIFEI.BILL_E_20_%' 没有测试,不敢肯定可以
这样不行吗?
这样不行吗?
----
你这样结果被扩大了,如:
JIFEI.BILL_E_20_aaa
JIFEI.BILL_E_20_bbb
JIFEI.BILL_E_20_ccd
也找出来了,而搂主要的是"年月日"格式的。
( SUBSTR(table_name,1,4) BETWEEN '1900' AND '2004' ) AND
(SUBSTR(table_name,5,2) BETWEEN '01' AND '12') AND
(SUBSTR(table_name,7,2) BETWEEN '01' AND '30') AND
table_name like 'JIFEI.BILL_E_20_%'
--------
SUBSTR(table_name,1,4)中的table_name应该是要取得后8位。
SUBSTR(table_name,7,2) BETWEEN '01' AND '30'不对,还有31,而且你这样组合出来的日期不一定是实际存在的有效日期,如2004-02-30,2004-04-31
create or replace function is_date(
p_str varchar2,
p_format varchar2 default 'yyyymmdd'
) return varchar2 is
dummy date;
begin
dummy := to_date(p_str, p_format);
return 'Y';
exception when value_error then
return 'N';
end;
/
然后使用查询:
select ...
where table_name like ...
and is_date(substr(table_name ...))='Y'
;