问一个SQL 语句

wdslhr 2005-01-07 04:06:12
今天的日期是050107 ,明天是050108.后天。。。。。。
我现有一表,表名为a ,我现将表名在今天时改为a_050107
明天改为a_050108
也就是说我的表名随时间变化而变化

请问此SQL语句如何写?
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
charmgjj 2005-01-08
  • 打赏
  • 举报
回复
学习
baojianjun 2005-01-08
  • 打赏
  • 举报
回复
是的
soniczck 2005-01-08
  • 打赏
  • 举报
回复
用楼上的方法以(tbname改为tbname:='a_'||to_char(sysdate,'yymmdd'))
然后建一个JOB,让它每天定时执行就可以了
ORARichard 2005-01-07
  • 打赏
  • 举报
回复
declare tbname varchar2(100);
begin
tbname:=to_char(sysdate,'mm-dd');
execute immediate 'rename oldtable to '||tbname;
end;
herohuaxu 2005-01-07
  • 打赏
  • 举报
回复
rename 不就行了吗
wdslhr 2005-01-07
  • 打赏
  • 举报
回复
怎样将日期动态的添加进去?

我是这样写的但是不行
rename a to concat(a,to_char(sysdate,'mm-dd'))
CodeMagic 2005-01-07
  • 打赏
  • 举报
回复
1 建一个包

create or replace package pak is
type cur is ref cursor;
procedure collist(name varchar2,c2 in out cur);
end;

create or replace package body pak is

procedure collist(name varchar2,colname varchar2,c2 in out cur) is
str varchar2(200);
cursor c1(tbname varchar2) is select column_name col
from user_tab_columns where lower(table_name)=lower(tbname);
begin
for rec in c1(name) loop
str:=str||rec.col||',';
end loop;

str:=substr(str,1,length(str)-1);
open c2 for 'select '||str||' from '||name;
end;
end;

过程collist的参数说明:
name 要查询的表名,c2 游标变量,用于传递结果集

2 使用方法:sqlplus中

var cur refcursor;
set autoprint on
set linesize 1000
exec pak.collist('a_'||to_char(sysdate,'yymmdd'),:cur);
andraw2002 2005-01-07
  • 打赏
  • 举报
回复
rename old_table_name to new_table_name;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧