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 使用decod-How';表演怎么样?_Oracle_Oracle11g_Transpose - Fatal编程技术网

Oracle 使用decod-How';表演怎么样?

Oracle 使用decod-How';表演怎么样?,oracle,oracle11g,transpose,Oracle,Oracle11g,Transpose,我发现了很多关于这种被称为旋转的max(解码)技术的例子,例如下面的例子。 有人有在大型数据集上使用此功能的经验吗?它是如何形成的 CREATE TABLE po_table ( po_num NUMBER, terms_type NUMBER, terms_description VARCHAR2(20) ); INSERT INTO po_table VALUES(10, 1, 'Desc-10-1'); INSERT INTO po

我发现了很多关于这种被称为旋转的max(解码)技术的例子,例如下面的例子。 有人有在大型数据集上使用此功能的经验吗?它是如何形成的

    CREATE TABLE po_table (
    po_num NUMBER,
    terms_type NUMBER,
    terms_description VARCHAR2(20)
    );

    INSERT INTO po_table VALUES(10, 1, 'Desc-10-1');
    INSERT INTO po_table VALUES(10, 2, 'Desc-10-2');
    INSERT INTO po_table VALUES(10, 3, 'Desc-10-3');
    INSERT INTO po_table VALUES(20, 1, 'Desc-20-1');
    INSERT INTO po_table VALUES(20, 3, 'Desc-20-3');
    INSERT INTO po_table VALUES(30, NULL, NULL);

    COMMIT;

    SELECT
    po_num,
    MAX(DECODE(terms_type, 1, terms_type)) AS terms1,
    MAX(DECODE(terms_type, 1, terms_description)) AS terms1Desc,
    MAX(DECODE(terms_type, 2, terms_type)) AS terms2,
    MAX(DECODE(terms_type, 2, terms_description)) AS terms2Desc,
    MAX(DECODE(terms_type, 3, terms_type)) AS terms3,
    MAX(DECODE(terms_type, 3, terms_description)) AS terms3Desc
    FROM
    po_table
    GROUP BY po_num
    ORDER BY po_num;

在Exadata X2-2全机架上试用,具有10mio行、3个不同组,运行时间为16秒。以前在500mio行上使用过,这不是什么大问题


为什么不使用pivot子句?它仍然存在严重的错误(11.2.0.4中未修复)。

是否有任何特定的原因不使用本机
PIVOT
子句(假设您使用的是11g版本)?您可以参考一些关于这些错误的详细信息吗? 我偶尔使用它,到目前为止我没有发现任何错误。如果你没有发现它,你会得到错误:ORA-03113:通讯频道上的文件结尾,没关系,如果你发现了,有一个补丁可用@Jörg,请回答@Jörg,目前我只有12万个值行需要转置,只有大约30种类型,到目前为止还不错。它已经投入生产几年了,没有任何问题。我们需要一段时间才能达到百万大关。