oracle 创建表名为当前日期的表

想创建一个表,希望表名中包含有系统当前日期,如TEST_20100120.我用的c++编程,其中的几条语句是
CString strTime=ct.Format("%Y-%m-%d&%H:%M:%S"); 获取系统当前时间
然后将%Y-%m-%d存于sdate中,即当天日期存于sdate中。
请问如何创建,谢谢
有的帖子里面用的是类似下面这种:
select ‘TEST_' || to_char(sysdate, 'yyyymmdd') into tabname from dual;
sysdate是系统时间,这点与我所想问的有些不同
但上面这句话在C++,还有SQL里面tabname并没有被识别。不知道哪里有错误

oracle中无法创建以全数字命令的表,必须要带有其他字母,可用如:T_日期 的格式。

单纯创建手动执行即可:

create table T_20151223
(id int,
name varchar2(10));

但一般情况,日期为动态(即随时间变化而变化),则需要用存储过程创建:

declare 
v_date varchar2(8);--定义日期变量
v_sql varchar2(2000);--定义动态sql
v_tablename varchar2(20);--定义动态表名
begin
 select to_char(sysdate,'yyyymmdd') into v_date from dual;--取日期变量
 v_tablename := 'T_'||v_date;--为动态表命名
 v_sql := 'create table '||v_tablename||'
 (id int,
 name varchar2(20))';--为动态sql赋值
 dbms_output.put_line(v_sql);--打印sql语句
 execute immediate v_sql;--执行动态sql
end;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-22
create or replace procedure kk ---创建存储过程KK
is
s varchar2(2000);
s:='
create table aaa'||to_char(sysdate,'yyyymmdd')||' as
select * from tab';
execute immediate s;
end kk;
执行KK就OK了。
创建一个aaa20100122的表,表的内容是当前用户的所有表名信息~~
这是我目前所知道的了~~本回答被提问者采纳
第2个回答  2010-02-03
select 'TEST_' || to_char(sysdate, 'yyyymmdd') as tabname from dual;
上面这句,把into换成as,或者不写。

你说的不想用那个系统时间,那就用你的sdate变量替换 sysdate ,不就行了么。

oracle 创建表名是当前日期的表
select (datepart(year,getdate())*100+datepart(month,getdate()))*100+datepart(day,getdate())

oracle中创建表时Datetime默认系统时间怎么做
create table test(id int,time date default sysdate);其中default sysdate就是代表默认的系统时间,验证方法如下:insert into test (id) values (1);commit;结果截图:插入的时间与系统时间是一致的,说明设置默认时间是成功的。

oracle按时间创建分区表
1、按时间分区表创建:create table t_test ( pk_id number(30) not null, add_date_time DATE, constraintPK_T_TEST primary key (pk_id))PARTITION BY RANGE (add_date_time)( PARTITIONt_test_2013_less VALUES LESS THAN (TO_DATE(‘2013-01-01 00:00:00‘,‘yyyy-mm-ddhh24:mi:...

oracle 约束 默认当前时间
1、创建表并带有默认当前时间的约束:create table test(id int,begin_date date default sysdate);2、测试,插入数据:insert into test(id) values (1);commit;3、测试结果:

oracle中的当前时间问题
SQL> create table t (time timestamp);Table created.SQL> desc t;Name Null? Type --- --- --- TIME TIMESTAMP(6)SQL> insert into t values(systimestamp);1 row created.SQL> insert into t values(current_timestamp);1 row created.SQL> select * from...

oracle 获取系统当前日期
oracle 获取系统当前日期 分两种情况,一种是创建表时自动创建带有默认值的字段,一种是把没有默认值的字段设置为有默认值的字段。第一种情况:1 2 3 create table test (id int,starttime date default sysdate not null );插入测试数据:1 2 insert into test (id) values (1);commit;...

请问修改表中的某一个日期类型的字段为当前系统时间的sql语句该如何书 ...
1、首先,打开数据库并创建一个新表。 因为设置了日期格式,所以两个date_time和time_time字段是日期类型,见下图,然后进入下一步。2、其次,完成上述步骤后,如果是一个简单的查询表,则以日期格式显示,见下图,然后进入下一步。3、接着,完成上述步骤后,查询日期显示结果设置日期格式,可以使用...

Oracle 提取当前时间mm,当做表名的一部分查询,怎么做
用动态sql,合成表名,比如(其他自己去查):declare b number; begin execute immediate 'select count(*) from table_'||to_char(sysdate,'dd') into b; dbms_output.put_line('table_'||:x||'行数'||b); end;

oracle如何创建表以及向表里面添加数据
1:首先打开oracle,在左侧中右击选择新建表。2:然后选择添加数据,添加完一组数据之后,紧接着还可以添加一组数据,把自己要填写的数据都上传之后就可以了。3:点击另存为,这个时候会出现一个窗口,出入文件的名字,点击确定即可。4:在表的下方就会出现一个名为Class的表,这个时候就已经创建好了,...

oracle 创建一个表test数据类型为date使用while循环语句插入10条,数据...
给你一个伪代码吧:使用oracle的 next_day() 函数 while i < 10 do insert test (time) values (next_day(sysdate));i++;DONE;关键是那个next_day函数 。。

相似回答