Подскажите пользователя в PLSQL - PullRequest
0 голосов
/ 05 ноября 2011

Мое задание - написать модуль PLSQL для вставки данных в базу данных. При определенных условиях ему может потребоваться дополнительная информация, и он должен запросить у пользователя еще одну деталь. Это должно быть сделано непосредственно в PLSQL, и формулировка прямо из задания.

Я исследовал эту тему и обнаружил, что некоторые люди говорят, что это невозможно сделать в PLSQL? Но функция ACCEPT PROMPT существует.

ACCEPT v_string PROMPT 'Enter your age: ';

Хотя это работает напрямую из SQLPlus, оно не работает в PLSQL, поскольку выдает мне эту ошибку:

PLS-00103: Encountered the symbol "V_STRING" when expecting one of the following: := . ( @ % ;

Может ли кто-нибудь дать некоторое представление о том, как я должен спрашивать пользователя из PLSQL, только когда определенное условие истинно (условие проверяется, когда вы получаете что-то еще из БД). Чтобы уточнить, мне нужна только помощь о том, как принять ввод.

Спасибо за ваше время.

Ответы [ 3 ]

1 голос
/ 05 ноября 2011

Существует трюк , который позволит вам сделать что-то подобное, но (а) это немного взломать, (б) вам необходимо войти на сам сервер базы данных, и (c) он работает только в Linux (и, возможно, в других версиях Unix).

Как правило, невозможно запросить ввод данных пользователем в PL / SQL, особенно если вы подключаетесь к базе данных на удаленном компьютере.,Либо ваше задание неверно, либо вы его неправильно поняли.

0 голосов
/ 22 марта 2019

Вы не можете получить пользовательский ввод в чистом PL / SQL.Это серверный язык для выражения логики бизнеса / базы данных.

Использование «&» для получения ввода является функцией «sqlplus», а не стратегией PL / SQL.Если это было «задание», то вы должны сказать учителю, что это недопустимое задание - или, возможно, это был хитрый вопрос!

0 голосов
/ 13 марта 2019

Я проверил и попробовал следующие вещи, которые могут быть полезны для вас. Это просто пример, который я попробовал. Вы можете реализовать свою собственную логику.

declare
c1 varchar2(50);
begin
c1:='&enter_value';
dbms_output.put_line(c1);
exception
when others then
dbms_output.put_line(sqlerrm);
end;

'&' поможет вам подсказывать и запрашивать ввод для пользователя. Когда пользователь вводит какой-то ввод, он назначается переменной, и вы можете использовать переменную в любом месте.

Надеюсь, это поможет вам.

...