2014-02-16 5 views
2

Я впервые взглянул на вставку из нескольких таблиц Oracle (я довольно новичок в SQL в целом), и я не совсем понимаю цель/необходимость для SELECT в конце инструкции.Синтаксис Oracle Multi-Table Insert?

С одним столом INSERT, я понимаю, что используется либо подзапрос VALUES, либо не оба. Может ли кто-нибудь объяснить значение предложения SELECT в конце этого заявления INSERT? Я смотрел онлайн, но я не нашел четкого ответа.

INSERT ALL 
WHEN prod_category='B' THEN 
INTO book_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
WHEN prod_category='V' THEN 
INTO video_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
WHEN prod_category='A' THEN 
INTO audio_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
SELECT prod_category ,product_id ,customer_id ,sale_qty, sale_price 
FROM sales_detail; 
+1

читать выбрать первый: выбрать х, у из table1. Для каждой строки, когда x = 'Foo', вставьте в таблицу2, когда x = 'Bar', затем вставьте в таблицу3 и т. Д. ... – tbone

ответ

2

Выбрать, используется для определения значений переменной prod_category используется в WHEN prod_category='B' THEN