Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 根据表大小从表中删除表_Oracle_Oracle11g - Fatal编程技术网

Oracle 根据表大小从表中删除表

Oracle 根据表大小从表中删除表,oracle,oracle11g,Oracle,Oracle11g,我使用此表存储消息。如果表的大小大于10 MB,我想按日期删除行。这在甲骨文中可能吗 CREATE TABLE EVENTS( EVENTID INTEGER NOT NULL, SOURCE VARCHAR2(50 ), TYPE VARCHAR2(50 ), EVENT_DATE DATE, DESCRIPTION VARCHAR2(100 ) ) / 定义“表的大小”(有多种方法可以计算将产生不同结果的大小,其中一些方法在从表中删除数据时不会更改)。如果表太大,是否要

我使用此表存储消息。如果表的大小大于10 MB,我想按日期删除行。这在甲骨文中可能吗

CREATE TABLE EVENTS(
  EVENTID INTEGER NOT NULL,
  SOURCE VARCHAR2(50 ),
  TYPE VARCHAR2(50 ),
  EVENT_DATE DATE,
  DESCRIPTION VARCHAR2(100 )
)
/

定义“表的大小”(有多种方法可以计算将产生不同结果的大小,其中一些方法在从表中删除数据时不会更改)。如果表太大,是否要删除早于某个日期的所有行,还是要删除足够的行,使表小于10 MB?您可以编写一个过程来实现您想要的任何逻辑,并通过
dbms\u调度器
安排后台作业,该调度器每晚调用您的过程来清理表。我不确定这正是您想要的。表大小是指所有数据组合的内存大小。也许没有像兆字节表大小这样的东西,“内存大小”意味着RAM。但我想你说的是磁盘存储。但是,如果删除表中的所有数据,最常用的“表大小”度量不会改变。在您的情况下,这似乎是有问题的(但可能不是,您需要向我们解释您的需求)。我想清理硬盘上的旧数据,因为硬盘非常有限。删除数据不会减少分配的空间量,这是Oracle XE 11 GB限制所要考虑的。您可以在该特定表中释放空间,以便将来插入到该特定表中,但该表的大小不会减小。