ORA-600 при компиляции пакета

gpu
Дата: 23.10.2015 17:08:02
Тест кейс 1 база 12.1.0.1.0
SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 23 15:52:20 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Release 12.1.0.1.0 - 64bit Production
SQL>create table gpu_dummy(proj_id VARCHAR2(10), budget NUMBER(15));
Table created.
SQL>CREATE OR REPLACE PACKAGE GPU_ORA600 AS
TYPE acs_ref_cursor IS REF CURSOR;
TYPE account_rec IS RECORD
(header_ind VARCHAR2(1),
job_id NUMBER,
budget gpu_dummy.budget%TYPE,

proj_id VARCHAR2(10)
--proj_id gpu_dummy.proj_id%TYPE

);
TYPE account_tab IS TABLE OF account_rec INDEX BY PLS_INTEGER;
FUNCTION ORA600_by_compile RETURN acs_ref_cursor;
END GPU_ORA600;
/
Package created.
SQL>CREATE OR REPLACE PACKAGE BODY GPU_ORA600 AS
FUNCTION ORA600_by_compile RETURN acs_ref_cursor
IS
l_acs_data account_tab;
p_acs_data acs_ref_cursor;
BEGIN
OPEN p_acs_data FOR
select header_ind,
job_id,
budget,
proj_id
from TABLE(l_acs_data);
RETURN p_acs_data;
END ORA600_by_compile;
END GPU_ORA600;
/
Package body created.

Пока все хорошо, слегка меняем тип proj_id в account_rec

SQL>CREATE OR REPLACE PACKAGE GPU_ORA600 AS
TYPE acs_ref_cursor IS REF CURSOR;
TYPE account_rec IS RECORD
(header_ind VARCHAR2(1),
job_id NUMBER,
budget gpu_dummy.budget%TYPE,

--proj_id VARCHAR2(10)
proj_id gpu_dummy.proj_id%TYPE

);
TYPE account_tab IS TABLE OF account_rec INDEX BY PLS_INTEGER;
FUNCTION ORA600_by_compile RETURN acs_ref_cursor;
END GPU_ORA600;
/
Warning: Package altered with compilation errors.
SQL>ALTER PACKAGE GPU_ORA600 COMPILE BODY;
Warning: Package Body altered with compilation errors.

SQL> SHOW ERRORS
Errors for PACKAGE BODY GPU_ORA600:

LINE/COL ERROR
-------- -----------------------------------------------------------------
8/6 PL/SQL: SQL Statement ignored
12/18 PL/SQL: ORA-00600: internal error code, arguments: [qctstc2o1],
[3], [1], [873], [1], [30], [0], [], [], [], [], []


Как вам етот феномен со строками? Где проблема в версии, в редакции?
Все работает на Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Загадка
Дата: 23.10.2015 17:21:18
gpu,

Такую стену текста даже читать неохота
Старикам тут не место
Дата: 23.10.2015 17:33:30
Загадка, тут читать ничего не надо.
Тут надо слать прямо на МОС, в ресловер 600-х.
Elic
Дата: 23.10.2015 17:34:13
gpu
Oracle Database 12c Release 12.1.0.1.0 - 64bit Production
TYPE account_rec IS RECORD
  TYPE account_tab IS TABLE OF account_rec INDEX BY PLS_INTEGER;
   l_acs_data account_tab;
            from TABLE(l_acs_data);
То, что синтаксический сахар правильно работает только с 12.1.0.2, - это нормально.
gpu
Дата: 23.10.2015 17:41:19
Elic
gpu
Oracle Database 12c Release 12.1.0.1.0 - 64bit Production
TYPE account_rec IS RECORD
  TYPE account_tab IS TABLE OF account_rec INDEX BY PLS_INTEGER;
   l_acs_data account_tab;
            from TABLE(l_acs_data);
То, что синтаксический сахар правильно работает только с 12.1.0.2, - это нормально.

Сисадмин утверждает что и на стандард едишене 12.1.0.2 не компилируется, но он уже свалил, а у меня другой 12ц базы под рукой нет.
Elic
Дата: 23.10.2015 17:50:06
gpu
и на стандард едишене 12.1.0.2 не компилируется
На ее - ок.
Гадать не нужно
Дата: 23.10.2015 17:54:23
Elic
На ее - ок.

Сомневаюсь, что на SE синтаксический анализатор PL/SQL машины отличается от такового на EE.
МОС расскажет if any...
Гдетотут
Дата: 23.10.2015 17:57:16
Коллеги с 12с, прогоните тестик, а? 18318385
Elic
Дата: 23.10.2015 18:02:44
Вообще, не стоит подсаживаться на сахар - диабет случится.
gpu
Дата: 23.10.2015 18:11:13
Elic
Вообще, не стоит подсаживаться на сахар - диабет случится.

Идея кода>
вместо того чтобы плодить обьекты в базе использовать типы обьявленные в пакете
понятна, но не поддерживается должным образом.