2013-02-20 46 views
1

这是我的SQL:子选择ininsert声明2行

insert into 
     LIST_ENTRIES(MANDATOR_KEY, SERVICE_IDENTIFIER, SERVICE_IDENTIFIER2, 
     REASON_CODE, BLOCK_TYPE, VALID_FROM, VALID_TO, LISTS_KEY, VERSION) 
     values 
     ('Abra2', 'abrakadabra',NULL,8,0,SYSDATE,SYSDATE, 
     SELECT DISTINCT ID, VERSION FROM LISTS 
     WHERE SERVICE_KEY = '10s3f10-111' 
     AND LIST_COLOR = 2 
     AND MANDATOR_KEY = 'ASD'); 

和我得到异常作为

00936. 00000 - "missing expression" 

,如果我只是运行子查询:

SELECT DISTINCT ID, VERSION FROM LISTS 
      WHERE SERVICE_KEY = '10s3f10-111' 
      AND LIST_COLOR = 2 
      AND MANDATOR_KEY = 'ASD' 

我得到的结果11, 145

什么是错的?为什么我无法使用子选择插入2个值。我检查手册和这里的工作原理: http://www.techonthenet.com/sql/insert.php

回答

1

这可以使用INSERT INTO...SELECT语句来完成,

INSERT INTO LIST_ENTRIES(MANDATOR_KEY, SERVICE_IDENTIFIER, SERVICE_IDENTIFIER2, REASON_CODE, BLOCK_TYPE, VALID_FROM, VALID_TO, LISTS_KEY, VERSION) 
SELECT 'Abra2', 'abrakadabra',NULL,8,0,SYSDATE,SYSDATE, ID, VERSION 
FROM LISTS 
WHERE SERVICE_KEY = '10s3f10-111' AND 
     LIST_COLOR = 2 AND 
     MANDATOR_KEY = 'ASD' 
+0

AAAA我忘了加选择盈方。谢谢!你节省了我的一天:D – senzacionale 2013-02-20 14:18:03

+0

不客气':D' – 2013-02-20 14:19:55