Как получить вход от пользователя во время выполнения

Я хочу использовать вход во время выполнения от пользователя в 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;

//, что все .. Теперь я думаю, что никто не имеет никаких вопросов, оставшихся после принятия пользовательских данных...