Как получить вход от пользователя во время выполнения
Я хочу использовать вход во время выполнения от пользователя в oracle 10g pl/sql-блоках (т.е. интерактивная связь с пользователем), возможно ли это?
declare
x number;
begin
x=&x;
end
этот код дает ошибку как и не может использоваться в oracle 10g.
Ответы
Ответ 1
Чтобы прочитать пользовательский ввод и сохранить его в переменной, для дальнейшего использования вы можете использовать команду sqlplus ACCEPT
.
Accept <your variable> <variable type if needed [number|char|date]> prompt 'message'
пример
accept x number prompt 'Please enter something: '
И тогда вы можете использовать переменную x
в блоке PL/SQL следующим образом:
declare
a number;
begin
a := &x;
end;
/
Работа с примером жала:
accept x char prompt 'Please enter something: '
declare
a varchar2(10);
begin
a := '&x'; -- for a substitution variable of char data type
end; -- to be treated as a character string it needs
/ -- to be enclosed with single quotation marks
Ответ 2
Это потому, что вы использовали следующую строку, чтобы назначить неверное значение.
x=&x;
В PL/SQL назначение выполняется с использованием следующих.
:=
Итак, ваш код должен быть таким.
declare
x number;
begin
x:=&x;
-- Below line will output the number you received as an input
dbms_output.put_line(x);
end;
/
Ответ 3
declare
a number;
b number;
begin
a:= :a;
b:= :b;
if a>b then
dbms_output.put_line('Large number is '||a);
else
dbms_output.put_line('Large number is '||b);
end if;
end;
Ответ 4
'DECLARE
c_id customers.id%type := &c_id;
c_name customers.name%type;
c_add customers.address%type;
c_sal customers.salary%type;
a integer := &a'
Здесь c_id Customers.id% type: = & c_id; оператор вводит c_id с типом, уже определенным в таблице, и оператор целым числом: = & только что введенное целое число в переменной a.
Ответ 5
Вы можете попробовать это тоже, и это будет работать:
DECLARE
a NUMBER;
b NUMBER;
BEGIN
a :=: a; --this will take input from user
b :=: b;
DBMS_OUTPUT.PUT_LINE('a = '|| a);
DBMS_OUTPUT.PUT_LINE('b = '|| b);
END;
Ответ 6
ПОПРОБУЙТЕ ЭТО
declare
a number;
begin
a := :a;
dbms_output.put_line('Inputed Number is >> '|| a);
end;
/
OR
declare
a number;
begin
a := :x;
dbms_output.put_line('Inputed Number is >> '|| a);
end;
/
Ответ 7
его очень простая
просто напишите:
//сначала создаем таблицу с именем test....
create table test (name varchar2(10),age number(5));
//при запуске вышеуказанного кода будет создана таблица....
//теперь мы должны вставить имя и возраст.
Удостоверьтесь, что возраст будет вставлен через открытие формы, которая ищет нашу помощь, чтобы ввести в нее значение
insert into test values('Deepak', :age);
//теперь запустите указанный выше код, и вы получите
"1 строка вставлена" выход...
/теперь запустите запрос выбора, чтобы увидеть вывод
select * from test;
//, что все
.. Теперь я думаю, что никто не имеет никаких вопросов, оставшихся после принятия пользовательских данных...