Sql 如何从超过200天的表格中清除数据

Sql 如何从超过200天的表格中清除数据,sql,oracle,purge,Sql,Oracle,Purge,我不熟悉数据库。我想从表中清除一些数据(即清除超过200天的旧数据),因此我得到了一个Sql脚本。有人能帮助我如何运行脚本@purge.sql“天数” 实际上,我的目标是要求服务器提供磁盘空间。清除后,我们需要执行任何步骤来声明文件系统 CREATE OR REPLACE PROCEDURE TEST_PURGE_REC ( DAYS IN VARCHAR2 /* Number of days as an parameter*/ ) AS BEGIN /* This deletes t

我不熟悉数据库。我想从表中清除一些数据(即清除超过200天的旧数据),因此我得到了一个Sql脚本。有人能帮助我如何运行脚本
@purge.sql“天数”

实际上,我的目标是要求服务器提供磁盘空间。清除后,我们需要执行任何步骤来声明文件系统

CREATE OR REPLACE PROCEDURE TEST_PURGE_REC 
(
  DAYS IN VARCHAR2 /* Number of days as an parameter*/

) AS 
BEGIN
/* This deletes the records from the tables TRACK_DETAILS,LOG_DETAILS  tables of TEST schema*/

  DELETE FROM TRACK_DETAILS WHERE TO_CHAR(CREATION_TIME,'DD-MON-YY') < TO_DATE(SYSDATE -DAYS);
  DELETE FROM LOG_DETAILS WHERE TO_CHAR(CREATION_TIME,'DD-MON-YY') < TO_DATE(SYSDATE -DAYS);
  COMMIT;
  DBMS_OUTPUT.PUT_LINE('The records are deleted successfully');

END TEST_PURGE_REC
创建或替换程序测试\u清除\u记录
(
VARCHAR2/*中的天数作为参数*/
)作为
开始
/*这将从测试架构的表TRACK\U DETAILS、LOG\U DETAILS表中删除记录*/
从轨道详细信息中删除到字符(创建时间,'DD-MON-YY')<到日期(SYSDATE-天);
从日志详细信息中删除到字符(创建时间,'DD-MON-YY')<到日期(SYSDATE-天);
犯罪
DBMS_OUTPUT.PUT_行(“记录已成功删除”);
结束测试\u清除\u记录

我认为您必须更改它的mssql格式,因为您的查询是oracle标准的

   DELETE FROM TRACK_DETAILS 
   WHERE convert(date,CREATION_TIME) < dateadd(day,-200,getdate());

    go

   DELETE FROM LOG_DETAILS
   WHERE convert(date,CREATION_TIME) < dateadd(day,-200,getdate());
从曲目详细信息中删除
其中convert(date,CREATION_TIME)
这看起来是一个Oracle过程。在您的问题中添加一个
oracle
标记,并删除
sqlserver
标记(microsoftsqlserver)。实际上,我想要在linux中运行sql脚本以上的步骤。它是由DB团队提供的,但我不知道DB脚本是从linux运行的。我知道prompt to SQL>@script.SQL,但我想这里是如何提供天数script@SatyaVeera您使用了什么数据库管理系统?
   DELETE FROM TRACK_DETAILS 
   WHERE convert(date,CREATION_TIME) < dateadd(day,-200,getdate());

    go

   DELETE FROM LOG_DETAILS
   WHERE convert(date,CREATION_TIME) < dateadd(day,-200,getdate());