Ошибка 201 выберите идентификатор должен быть объявлен - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь создать форму входа через Oracle Form Builder, у меня есть таблица с именем TRAVEL_USER, которую я создал в SQLPlus.

Я сделал кнопку и использую триггер при нажатии кнопки.

Для начала я использую этот код, чтобы просто посчитать количество пользователей, зарегистрированных в системе:

DECLARE
    TUsers NUMBER := 0;
BEGIN
    SELECT COUNT(*) FROM TRAVEL_USER;
END;

При компиляции я получаю следующую ошибку: Ошибка 201: должен быть объявлен идентификатор «TRAVEL_USER».

Я могу подтвердить, что эта таблица существует в базе данных, к которой я подключаюсь, я проверил через SQLPlus и мастер блоков данных в Oracle Forms Builder.

Я подключаюсь к базе данных с полными привилегиями администратора (используя системное имя пользователя).

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Какой пользователь владеет таблицей TRAVEL_USER?Если вы подключаетесь как пользователь SYSTEM (плохая идея), то вам, вероятно, необходимо полностью указать имя таблицы с именем схемы, которой принадлежит таблица:

SELECT COUNT(*) FROM owner.travel_user;

Либо так, либо создайте общедоступный синоним длятаблица:

CREATE PUBLIC SYNONYM travel_user FOR owner.travel_user;

Вы не должны иметь привычку использовать учетные записи SYS или SYSTEM для приложений.Они являются системными учетными записями и должны использоваться в системных целях.

0 голосов
/ 13 декабря 2012

(лучший способ)

DECLARE
SNAME NUMBER:=0;
BEGIN
SELECT COUNT(*) INTO SNAME FROM TRAVEL_USER;
:PCOUNT:=SNAME;
END;

Я использовал это в ORACLE FORM BUILDER 10G ПРАКТИЧЕСКИ, И ЭТО РАБОТАЕТ

ПЕРВЫЙ ВЫБОР СЧЕТА ИЗ ТАБЛИЦЫ В ПЕРЕМЕННОЙ (ИМЯ) И ПОСЛЕ ТОГО, ЧТО СОЗДАЙТЕ ЭЛЕМЕНТ ОТОБРАЖЕНИЯ, КАК (PCOUNT), ЗАПИСЫВАЙТЕ ЗНАЧЕНИЕ ИМЯ НА PCOUNT

Я ИСПОЛЬЗУЮ ЭТОТ КОД В ТИГГЕР С ПРИКЛАДНОЙ КНОПКОЙ, И ЭТО РАБОТАЕТ ПРАВИЛЬНО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...