2014-04-25 76 views

回答

6

的的操作数是返回一个单独列的值,为您操作的子查询。 列值必须是嵌套表格。否则,您会收到运行时错误。因为该值是嵌套表格,而不是标量值,所以必须通知Oracle,这是操作符THE的作用。

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

Oracle Documentation

+3

另外值得一提的是[11.2文档]中的注意事项(http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF30047):“在较早版本的Oracle中,当collection_expression是一个子查询,table_collection_expression表示为THE子查询,现在不推荐使用该用法。“ –