2014-04-25 14 views

Antwort

6

Der Operand der eine Unterabfrage ist, die eine einzelne Spalte Wert zurückgibt für Sie zu manipulieren. Der Spaltenwert muss eine geschachtelte Tabelle sein. Andernfalls erhalten Sie einen Laufzeitfehler. Da der Wert eine verschachtelte Tabelle und kein Skalarwert ist, muss Oracle informiert werden, was der Operator THE tut.

Beispiel

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); 

Von Oracle Documentation.

+3

Erwähnenswert ist auch der Hinweis in der [11.2 Dokumentation] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF30047): "In früheren Versionen von Oracle, wann collection_expression war eine Unterabfrage, table_collection_expression wurde als THE-Unterabfrage ausgedrückt. Diese Verwendung ist jetzt veraltet. " –

Verwandte Themen