Непонятки с Анал. Фунц.ми

Бомж
Дата: 31.05.2006 16:36:04
Добрый день.
Есть табле Employee :

hr@DEV>SELECT DBMS_METADATA.GET_DDL('TABLE','EMPLOYEE',USER) from dual;

  CREATE TABLE "HR"."EMPLOYEE"
   (    "EMPNO" NUMBER(3,0),
        "ENAME" VARCHAR2(20),
        "HIREDATE" DATE,
        "ORIG_SALARY" NUMBER(6,0),
        "CURR_SALARY" NUMBER(6,0),
        "REGION" VARCHAR2(2),
         CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") ......................
.......

/

hr@DEV> select * from employee

     EMPNO ENAME                HIREDATE  ORIG_SALARY CURR_SALARY RE
---------- -------------------- --------- ----------- ----------- --
       100 Steven               17-JUN-87       24000       24010 W
       101 Neena                21-SEP-89         400       17020 E
       102 Lex                  13-JAN-93       50000       48790 W
       103 Alexander            03-JAN-90        9000        9040 E
       104 Bruce                21-MAY-91        6000        6050 E
       105 David                25-JUN-97        4800        4860 E
       106 Valli                05-FEB-98       65400        4870 W

7 rows selected.



Вариант 1: ( Нормално отсортировал по ename )

hr@DEV>select empno , ename , orig_salary , row_number() 
over ( order by orig_salary desc) Banzay from employee  order by ename;

     EMPNO ENAME                ORIG_SALARY     BANZAY
---------- -------------------- ----------- ----------
       103 Alexander                   9000          4
       104 Bruce                       6000          5
       105 David                       4800          6
       102 Lex                        50000          2
       101 Neena                        400          7
       100 Steven                     24000          3
       106 Valli                      65400          1

7 rows selected.

А ПОЧЕМУ :

hr@DEV>select empno , ename , orig_salary , row_number() 
over ( order by orig_salary desc) Banzay  from employee  order by empno;

     EMPNO ENAME                ORIG_SALARY     BANZAY
---------- -------------------- ----------- ----------
       106 Valli                      65400          1
       102 Lex                        50000          2
       100 Steven                     24000          3
       103 Alexander                   9000          4
       104 Bruce                       6000          5
       105 David                       4800          6
       101 Neena                        400          7

7 rows selected.

НЕ СОРТИРУЕТ ПО empno???



hr@DEV>select banner from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE    9.2.0.1.0       Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

Спасибо.

© Бомж Inc.
dmidek
Дата: 31.05.2006 16:44:44
Забавный сабж

Похоже ответ надо искать в баннере.
9.2.0.1 - не лучшая версия.
На 9.2.0.5 - полет нормальный
alex-ls
Дата: 31.05.2006 16:46:24
select
  lpuid, row_number() over (order by name)
from lpu
order by lpuid

      LPUID ROW_NUMBER()OVER(ORDERBYNAME)
----------- -----------------------------
        241                             6
        242                             7
        243                            11
        261                            12
        262                            14
        263                             4
        264                             3
        265                             5
        266                             8
        281                            10
        301                            13
        302                             9
        421                             1
        422                             2
14 rows selected

select banner from v$version

BANNER                                  
----------------------------------------
Oracle9i Enterprise Edition Release 9.2.
PL/SQL Release 9.2.0.6.0 - Production   
CORE	9.2.0.6.0	Production               
TNS for 32-bit Windows: Version 9.2.0.6.
NLSRTL Version 9.2.0.6.0 - Production   
5 rows selected
orawish
Дата: 31.05.2006 16:46:40
Баг имхо.
попробуйте, для очистки совести
select * from (..) order by empno
и
select * from (..) order by 1
А вообще - уходите с этой версии сервера.
Вот вам - бонус, для скорости в принятии решения
select distinct granted_role from dba_role_privs order by 1
Бомж
Дата: 31.05.2006 16:56:49

Знали про такой исход?!?!?

hr@DEV>select distinct granted_role from dba_role_privs order by 1;
select distinct granted_role from dba_role_privs order by 1
                                  *
ERROR at line 1:
ORA-00600: internal error code, arguments: [qernsRowP], [1], [], [], [], [], [], []

© Бомж Inc.
orawish
Дата: 31.05.2006 16:57:55
Бомж

Знали про такой исход?!?!?

hr@DEV>select distinct granted_role from dba_role_privs order by 1;
select distinct granted_role from dba_role_privs order by 1
                                  *
ERROR at line 1:
ORA-00600: internal error code, arguments: [qernsRowP], [1], [], [], [], [], [], []

© Бомж Inc.
А то
Alex_D
Дата: 31.05.2006 17:56:38
orawish
Вот вам - бонус, для скорости в принятии решения
select distinct granted_role from dba_role_privs order by 1

А бонус всегда работает ? ;-))
SQL> select * from v$version
  2  /

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE	9.2.0.1.0	Production

TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

SQL> select distinct granted_role from dba_role_privs order by 1
  2  /

GRANTED_ROLE
------------------------------
AQ_ADMINISTRATOR_ROLE
AQ_USER_ROLE
AUTHENTICATEDUSER
CONNECT
CTXAPP
DBA
...
SELECT_CATALOG_ROLE
WKUSER
WM_ADMIN_ROLE
XDBADMIN

30 rows selected
orawish
Дата: 31.05.2006 18:05:43
Alex_D
А бонус всегда работает ? ;-)) ..

Нет. Только по заказу ;)
Ну, попробуйте
select 1 from dual order by 1 desc
Alex_D
Дата: 31.05.2006 18:16:21
orawish
Alex_D
А бонус всегда работает ? ;-)) ..

Нет. Только по заказу ;)
Ну, попробуйте
select 1 from dual order by 1 desc


Ну вот опять меня обделили ))))))
SQL> select 1 from dual order by 1 desc
  2  /

         1
----------
         1
orawish
Дата: 31.05.2006 18:59:41
Alex_D
Ну вот опять меня обделили ))))))

Аномалия...