小编Raj*_*esh的帖子

high_value 到 date 数据类型的转换

我需要将 LONG 数据类型的 high_value 与 DATE 数据类型的 sysdate 进行比较。我需要获取 90 天前的所有分区的分区名称。代码是这样的。

declare
       dt date;
   time_to_stay number:=1; --CONFIGURE AS PER THE REQUIREMENT
    begin
    for x in (select partition_name , high_value, partition_position
          from user_tab_partitions
          where table_name = 'DEMO')
loop
   execute immediate 'select '||x.high_value||' from dual' into dt;      
     if to_date(dt) < sysdate-time_to_stay AND x.partition_position <>'1'     then
execute immediate 'ALTER TABLE DEMO DROP PARTITION '|| x.partition_name|| ' UPDATE GLOBAL INDEXES';
Run Code Online (Sandbox Code Playgroud)

此查询会执行但不会删除分区。但是我看到主要问题是将 high_value 的 LONG 数据类型转换为 DATE 以在 high_value 和 sys_date 之间进行比较。

我怎样才能解决这个问题?

oracle partitioning

2
推荐指数
1
解决办法
2万
查看次数

从列值应该不同的表中选择值

假设表中有 4 列。

cpt,cpt4mod,itemcharge,eff_date.
Run Code Online (Sandbox Code Playgroud)

条件1:如果值cpt,cpt4itemcharge是一样的,但是eff_date是不同的。然后我需要根据eff_date.

condtition2:如果值cptcpt4是相同的,但eff_dateitemcharge不同。然后我需要根据eff_date.

条件3:如果所有列都具有相同的值,那么我需要根据 eff_date

条件 4:如果 的值cpt,cpt4and,eff_date相同但itemcharge 不同。然后我需要获取除最新记录之外的所有记录

join sql-server group-by

0
推荐指数
1
解决办法
504
查看次数

标签 统计

group-by ×1

join ×1

oracle ×1

partitioning ×1

sql-server ×1