小编ber*_*ner的帖子

Clause中可能存在"大于0"的Oracle Bug

我有一个select语句,它提供了错误的行数.我可以重现的问题Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionOracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production我不能复制的Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

测试数据:

CREATE TABLE PERSON AS
SELECT LEVEL AS ID, 'Person_'||LEVEL AS NAME, 10 as maxVal
FROM DUAL 
CONNECT BY LEVEL <= 5;

create table orders as
SELECT LEVEL AS ID, 'Order_'||LEVEL AS NAME
FROM DUAL 
CONNECT BY LEVEL <= 3;
Run Code Online (Sandbox Code Playgroud)

如果我尝试以下查询,我只得到3个结果而不是5个结果:

select p.*
      from person p
     where …
Run Code Online (Sandbox Code Playgroud)

sql oracle select

17
推荐指数
1
解决办法
1269
查看次数

SubQueries和Group Functions可能存在Oracle-Bug

任何人都可以解释为什么以下查询返回两行而不只是一行?

SELECT *
  FROM (SELECT 'ASDF' c1, MAX (SUM (1)) c2
          FROM DUAL
         GROUP BY dummy
        UNION
        SELECT 'JKLÖ' c1, 1 c2
          FROM DUAL)
 WHERE c1 != 'ASDF';

--another Version with the same wrong result:
SELECT *
  FROM (SELECT 1 c1, MAX (SUM (1)) c2
          FROM DUAL
         GROUP BY dummy
        UNION all
        SELECT 2 c1, 1 c2
          FROM DUAL)
 WHERE c1 != 1;
Run Code Online (Sandbox Code Playgroud)

Oracle提供两行是否正确?在我看来,c1 = ASDF的行不应该在结果中.

这是第一个查询结果的屏幕截图:

在此输入图像描述

我在以下版本上测试了它,总是得到相同的结果:

  • Oracle Database 11g企业版11.2.0.3.0版 - 64位生产
  • Oracle Database 12c企业版12.1.0.2.0版 - 64位生产

sql oracle

8
推荐指数
1
解决办法
1317
查看次数

Oracle 11g - 临时表空间段不会发布(Oracle Bug?)

我正在使用Oracle数据库11g企业版11.2.0.4.0版 - 64位生产,我在TOAD 12.6.0.53中执行以下查询时出现问题(不是典型查询,但仅用于演示):

with rownums 
as (select distinct 
    rownum rn 
      from dual 
   connect by level <=1000000 
) 
select rn from rownums 
 union all
select rn from rownums;

--Edit: this Statement ist NOT showing the behaviour:
begin
    for cRow in (with rownums 
                as (select distinct 
                    rownum rn 
                      from dual 
                   connect by level <=1000000 
                ) 
                select rn from rownums 
                 union all
                select rn from rownums) 
    loop
        return;
    end loop;
end;
Run Code Online (Sandbox Code Playgroud)

执行此查询后,我可以使用此查询检查临时表空间的用法:

SELECT S.sid, S.serial#, SUM (T.blocks) * …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

5
推荐指数
1
解决办法
1775
查看次数

Oracle:使用自动列表分区和范围子分区

我想使用分区方法将我的表分成两个维度:

  1. 第一个维度是键列表。该列表可以随着时间的推移而增长,如果键列表将被扩展,我不想需要 DBA 来添加分区。因此我想使用自动列表分区

  2. 第二个维度是日期列的每日范围。

这是我的例子,它给了我一个ORA-14179

CREATE TABLE PartitionedTable
( 
  id              number,
  PartitionKey    number,
  created         date
) 
PARTITION BY LIST (PartitionKey) AUTOMATIC
SUBPARTITION BY RANGE (created) INTERVAL (NUMTODSINTERVAL(1,'DAY'))
( PARTITION p_PartitionKey VALUES (1)
  ( SUBPARTITION p_created VALUES LESS THAN (TO_DATE('01-JAN-2000','dd-MON-yyyy'))
  )
);
Run Code Online (Sandbox Code Playgroud)

我使用的是Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

如果插入新键和新日期,是否可以选择如何以最少的工作量创建这个二维分区表?

oracle database-partitioning oracle12c

4
推荐指数
1
解决办法
3511
查看次数