2012-01-04 49 views
21

Tôi muốn khai báo và hiển thị một biến trong Oracle.Cách khai báo và hiển thị một biến trong Oracle

Trong T-SQL tôi sẽ làm một cái gì đó như thế này

DECLARE @A VARCHAR(10) --Declares @A 
SELECT @A = '12' --Assigns @A 
SELECT @A --Displays @A 

Làm thế nào tôi có thể làm điều này trong Oracle.

Trả lời

34

Nếu bạn đang nói về PL/SQL, bạn nên đặt nó trong một khối ẩn danh.

DECLARE 
    v_text VARCHAR2(10); -- declare 
BEGIN 
    v_text := 'Hello'; --assign 
    dbms_output.Put_line(v_text); --display 
END; 
+0

Xin lỗi vì đã khôi phục một bài đăng cũ. Một phần của điều này không giải quyết được câu hỏi ban đầu - đối với tôi ít nhất - là 'dbms_output.put_line' có hiệu quả thực hiện câu lệnh' PRINT' trong T-SQL. Những gì David đăng và những gì tôi đang tìm kiếm là câu lệnh 'SELECT' cuối cùng để trả về một tập kết quả - có thể được ứng dụng khách sử dụng. Bạn có biết cách thực hiện điều này không? Cảm ơn. – InbetweenWeekends

+0

'dbms_output.Put_line (v_text);' tương đương với 'PRINT @v_text;' trong T-SQL ... nếu bạn nhớ kết nối cửa sổ đầu ra Dbms của bạn trong nhà phát triển SQL với cùng một kết nối Oracle như truy vấn của bạn! –

+1

Nếu bạn muốn có các câu lệnh đầu ra Dbms trong bảng Script Output, đây là một hướng dẫn nhanh và dễ dàng. http://www.thatjeffsmith.com/archive/2012/05/enabling-dbms_output-by-default-in-sql-developer/ – MPaul

7

Nếu sử dụng sqlplus bạn có thể định nghĩa một biến như sau:

define <varname>=<varvalue> 

Và bạn có thể hiển thị các giá trị bằng cách:

define <varname> 

Và sau đó sử dụng nó trong một truy vấn như, ví dụ :

select * 
from tab1 
where col1 = '&varname'; 
+0

Cú pháp '& varname' rất hữu ích, cảm ơn bạn – Nacht

1

Gần đây bạn có sw không itch từ MySQL và đang khao khát tương đương logic của các lệnh đơn giản hơn trong Oracle? Bởi vì đó là trường hợp của tôi và tôi có cùng một câu hỏi. Mã này sẽ cung cấp cho bạn một bản in nhanh và bẩn mà tôi nghĩ là những gì bạn đang tìm kiếm:

Variable n number 
begin 
    :n := 1; 
end; 
print n 

Phần giữa là bit PL/SQL liên kết biến. Đầu ra từ bản in n ở dạng cột, và sẽ không chỉ cho giá trị của n, tôi sợ. Khi tôi chạy nó trong Toad 11 nó trở lại như thế này

 n 
--------- 
     1 

Tôi hy vọng rằng sẽ giúp

2

Nếu bạn đang sử dụng pl/sql mã sau đó sau nên làm việc:

bộ serveroutput trên - để lấy và hiển thị một bộ đệm

DECLARE

v_text VARCHAR2(10); -- declare 

BEGIN

v_text := 'Hello'; --assign 
dbms_output.Put_line(v_text); --display 

END;

/- điều này phải được sử dụng để thực thi tập lệnh pl/sql

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