2014-04-25 18 views

Trả lời

6

Các toán hạng của THE là một subquery đó trả về một giá trị cột duy nhất cho bạn thao tác. Giá trị cột phải là một bảng lồng nhau. Nếu không, bạn sẽ gặp lỗi thời gian chạy. Bởi vì giá trị là bảng lồng nhau, không phải là giá trị vô hướng, Oracle phải được thông báo, đó là điều mà toán tử THE thực hiện.

Ví dụ

DECLARE 
    adjustment INTEGER DEFAULT 1; 
    ... 
BEGIN 
    ... 
    UPDATE 
     THE(SELECT courses FROM department 
      WHERE name = 'Psychology') 
     SET credits = credits + adjustment 
     WHERE course_no IN (2200, 3540); 

Từ Oracle Documentation.

+3

Cũng đáng nhắc đến Lưu ý trong tài liệu [11.2] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF30047): "Trong bản phát hành trước của Oracle, khi collection_expression là truy vấn con, table_collection_expression được biểu thị dưới dạng truy vấn con. Việc sử dụng đó hiện không còn được dùng nữa. " –

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