求助:关于表空间的问题?
代码如下:
try{
stmt.executeUpdate("drop table CACH_HALL_SMS_PNFM");
}catch(Exception e){
}
stmt.executeUpdate("create table CACH_HALL_SMS_PNFM" + date + " TABLESPACE PFM as SELECT FROM CACH_HALL_SMS_PNFM");
问题:先执行了drop删除了表,后面怎么还能得该表的表空间呢?
------最佳解决方案--------------------stmt.executeUpdate("create table CACH_HALL_SMS_PNFM" + date + " TABLESPACE PFM as SELECT FROM CACH_HALL_SMS_PNFM");
这句话的意思是创建表格CACH_HALL_SMS_PNFM,使用表空间PFM,
复制CACH_HALL_SMS_PNFM中的所有数据来创建新表。
所以,这是有问题的。
问题1:表格CACH_HALL_SMS_PNFM已经被drop掉了,不能再去select.
问题2:语法有问题,正确的语法是
create table your_tablename tablespace your_tablespace as select * from another_tablename;
------其他解决方案--------------------表空間比表的概念大,表是存放在表空間中的,一個表空間可以存n個表,你刪除表,和表空間又沒有關系,當然可以得到表空間了
------其他解决方案--------------------删除表后,表还在 RECYCLEBIN 这里,所以表空间没有被释放.
drop后使用PURGE RECYCLEBIN清空回收站试试.