... по крайней мере, я думаю, что это проблема.
Я пишу функцию, содержащую объявление курсора, которое обращается к таблице, в которой один из столбцов является зарезервированным словом NUMBER (да, я знаю...). Функция столкнулась с проблемой во время компиляции:
Ошибка (16,10): PL/SQL: ORA-06552: PL/SQL: анализ модуля компиляции прекращен ORA-06553: PLS-488: недопустимое объявление переменной: объект «ЧИСЛО» должен быть типом или подтипом
МОЙ код выглядит примерно так:
CURSOR my_cur
IS
SELECT "NUMBER", col2, col3
FROM tb1_x;
Чтобы убедиться, что это проблема, я изменил код на
CURSOR my_cur
IS
SELECT 'NUMBER', 'col2', 'col3'
FROM dual;
и он скомпилирован хорошо, но, очевидно, это не то, что я хочу.
К сожалению, у меня нет возможности изменить имя столбца (вздох), и для записи
SELECT "NUMBER", col2, col3
FROM tb1_x;
работает нормально при обычном выполнении SQL.
В любом случае я могу обойти эту проблему? Любая помощь высоко ценится!
select "NUMBER" as NUMBER
илиselect "NUMBER" as 'NUMBER'
или что-то в этом роде? - person gangreen   schedule 08.03.2012CURSOR my_cur IS SELECT col2, col3 FROM tb1_x;
- person alchn   schedule 08.03.2012NUMBER
в Num (или что-то в этом роде), а затемselect Num as NUMBER from view
? - person gangreen   schedule 08.03.2012