oracle10g 虚拟列,更改Oracle 10G中的表 - 虚拟列

我是Oracle DB的新手 . 当我在Oracle数据库版本中执行时:Oracle Database 11g企业版11.2.0.3.0版 - 64位生成以下代码:

ALTER TABLE TEMP_WORKING_TABLE_1

ADD (CD1 AS ( CAST(MYDATE - 1 AS TIMESTAMP(6)) ) VIRTUAL NOT NULL);

我获得了成功的输出:表TEMP_WORKING_TABLE_1已更改 .

但是当我在版本中执行相同的代码时:Oracle数据库10g企业版10.2.0.4.0版 - 64位 生产环境 我收到错误:

ALTER TABLE TEMP_WORKING_TABLE_1

ADD (CD1 AS ( CAST(MYDATE - 1 AS TIMESTAMP(6)) ) VIRTUAL NOT NULL)

Error SQL: ORA-00902: invalid datatype

00902. 00000 - "invalid datatype"

任何想法为什么我得到这个输出?此代码的任何解决方法?

编辑:

我的代码如下:

create table TEMP_WORKING_TABLE_1 compress as select * from myTable partition(P20141023);

ALTER TABLE TEMP_WORKING_TABLE_1

ADD (MYDATE AS ( CAST(CREATION_DATE - 1 AS TIMESTAMP(6)) ) VIRTUAL NOT NULL);

create table TEMP_WORKING_TABLE_2 compress as

select COLUMN1,COLUMN2,MYDATE AS CREATION_DATE,COLUMN3

from TEMP_WORKING_TABLE_1;

;

ALTER TABLE myTable EXCHANGE PARTITION P20141022 WITH TABLE TEMP_WORKING_TABLE_2 INCLUDING INDEXES WITHOUT VALIDATION UPDATE GLOBAL INDEXES;

我正在尝试交换分区 . 我在Oracle 11G中使用虚拟列 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值