日期:2014-05-17  浏览次数:20829 次

求助:关于表空间的问题?
代码如下:
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清空回收站试试.