Я не знаю BI Publisher, но - что касается Oracle, имя столбца может , а не быть number
.Это зарезервированное слово для типа данных:
SQL> create table test (number number);
create table test (number number)
*
ERROR at line 1:
ORA-00904: : invalid identifier
Ваш запрос использует такой столбец:
select b.number ...
, который не может работать, если кто-то не создал такую таблицу, заключив имя столбца вдвойные кавычки, например
SQL> create table test ("number" number);
Table created.
SQL> desc test
Name Null? Type
----------------------------------------- -------- ---------------
number NUMBER
SQL>
Однако вам придется каждый раз указывать такое имя столбца, используя двойные кавычки, обращая внимание на регистр букв (то есть: если столбец был создан как «NumBER», у вас естьчтобы ссылаться на него именно таким образом. "numBER" или "NUMber" или "nUmBeR" или "number" или "NUMBER" не будут работать).Несколько примеров:
SQL> insert into test (number) values (1);
insert into test (number) values (1)
*
ERROR at line 1:
ORA-00928: missing SELECT keyword
SQL> insert into test ("NUMber") values (1);
insert into test ("NUMber") values (1)
*
ERROR at line 1:
ORA-00904: "NUMber": invalid identifier
SQL> insert into test ("NUMBER") values (1);
insert into test ("NUMBER") values (1)
*
ERROR at line 1:
ORA-00904: "NUMBER": invalid identifier
SQL> insert into test ("number") values (1);
1 row created.
SQL> select t."number" from test t;
number
----------
1
SQL>
Поэтому я бы посоветовал вам проверить описание таблицы и попробовать то, что вы видите;может быть, это так просто, как
select b."number" ...
Если это так, то более чем очевидно, что делать что-то, потому что вы можете делать это, не значит, что вы должны сделай это.Избегайте таких вещей, никогда не заключайте имена объектов Oracle в двойные кавычки, используйте значения по умолчанию.