Модель данных не может быть выполнена из-за ошибки, пожалуйста, свяжитесь с администратором - PullRequest
0 голосов
/ 06 июня 2019

У меня есть наборы данных, которые содержат столбцы, параметры которых по имени, дате и номеру. Но каждый раз, когда я просматриваю данные, появляется сообщение об ошибке The data model cannot be executed because of an error, please contact the administrator. Но оно показывает только сообщение, но не отображает подробности ошибки. У меня также есть список значений, потому что я установил тип параметра моих параметров для name и number как menu, что является результатом значение, которое будет возвращено для number, основано на name, потому что, если я не основал его на имени, оно вернет 100+ значений, что не подходит моему пользователю.

Мой запрос для моего набора данных, например,

select a.name, a.date, a.type_name, b.number, c.address
from details1 a, details2 b, details3 c
where
a.id = b.id
and b.id = c.id
and a.name = :name
and a.date between :start_date and :end_date
and b.number = :number

Запрос списка значений для name

select a.name from details1 a
where a.type_name = 'person'

Запрос списка значений для num

select b.number
from details1 a, details2 b
where 1=1
and a.id = b.id
and a.name = :name

1 Ответ

0 голосов
/ 06 июня 2019

Я не знаю 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 в двойные кавычки, используйте значения по умолчанию.

...