2012-09-20 25 views

Trả lời

16

Để đọc đầu vào của người dùng và lưu trữ nó trong một biến, để sử dụng sau này, bạn có thể sử dụng lệnh sqlplus ACCEPT.

Accept <your variable> <variable type if needed [number|char|date]> prompt 'message' 

dụ

accept x number prompt 'Please enter something: ' 

Và sau đó bạn có thể sử dụng các biến x trong một khối PL/SQL như sau:

declare 
    a number; 
begin 
    a := &x; 
end; 
/
+1

: thưa ông tôi đã thử mã này, nó mang lại sau lỗi: ORA-00.900: không hợp lệ câu lệnh SQL –

+0

thưa là nó có thể để có đầu vào trực tiếp, mà không sử dụng sqlplus. –

+0

i m chạy nó trên oracle 10g cơ sở dữ liệu Express phiên bản.không phải trên sqlplus –

-7

của nó rất đơn giản

chỉ cần viết:

// đầu tiên tạo bảng tên thử nghiệm ....

create table test (name varchar2(10),age number(5)); 

// khi bạn chạy các mã trên một bảng sẽ được tạo ra ....

// bây giờ chúng ta phải chèn một tên & một tuổi ..

Hãy chắc chắn rằng tuổi sẽ được chèn qua mở ra một hình thức mà tìm kiếm sự giúp đỡ của chúng tôi để nhập giá trị trong nó

insert into test values('Deepak', :age); 

// bây giờ chạy đoạn mã trên và bạn sẽ được "1 hàng chèn" đầu ra ...

/giờ chạy truy vấn chọn để xem kết quả

select * from test; 

// đó là tất cả ..Now tôi nghĩ rằng không ai có bất cứ thắc mắc còn lại chấp nhận một dữ liệu người dùng ...

+0

Vui lòng sử dụng định dạng mã hoặc phần tử mã nội tuyến để giúp bài đăng của bạn dễ đọc hơn. –

-4

TRY

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; 
/
0

nÀY đó là vì bạn đã sử dụng dòng sau để gán các giá trị đó là sai.

x=&x; 

Trong phân công PL/SQL được thực hiện bằng cách sử dụng sau.

:=

Vì vậy, mã của bạn nên được như thế này.

declare 
    x number; 
    begin 
    x:=&x; 
-- Below line will output the number you received as an input 
    dbms_output.put_line(x); 
    end; 
    /
0
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; 
+0

bạn có thể giải thích cách thức hoạt động của nó? Lưu ý câu hỏi đã được đăng 5 năm trước, có một câu trả lời được chấp thuận, được bầu chọn tốt với một vài dòng, vì vậy việc đăng một cách tiếp cận dài hơn sau tất cả thời gian này sẽ yêu cầu một số loại nhận xét về cách cải thiện câu trả lời hiện có. – fedorqui

Các vấn đề liên quan