2014-04-25 13 views

risposta

6

L'operando di LA è una subquery che restituisce un singolo valore colonna per di manipolare. Il valore della colonna deve essere una tabella nidificata. In caso contrario, si ottiene un errore di runtime. Poiché il valore è una tabella nidificata , non un valore scalare, Oracle deve essere informato, che è ciò che fa l'operatore.

Esempio

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

Da Oracle Documentation.

+3

Vale anche la pena ricordare la nota nella [11.2 documentazione] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF30047): "Nelle versioni precedenti di Oracle, quando collection_expression era una subquery, table_collection_expression è stata espressa come subquery.Questo utilizzo è ora deprecato. " –

Problemi correlati