INSERT ... SELECT

 
0
 
Oracle
ava
Song | 25.08.2005, 12:48
Есть таблица:

ID,
PARAM_ID,
VALUE_ID,
OP_ID,
ED_ID,
VALUE,
VALUE2,
NORM_ID,
CHECK_STATE

на INSERT поставлен триггер для нахождения значения автоинкремента для колонки ID, поэтому её переносить не надо (значение вставится само).

Необходимо сделать копию рядов таблицы, у которых колонка CHECK_STATE = 1.

Делаю так:

INSERT INTO Tbl n

(

n.PARAM_ID, n.VALUE_ID, n.OP_ID, n.ED_ID, 
n.VALUE, n.VALUE2, n.NORM_ID, n.CHECK_STATE 

) VALUES (

SELECT 

(

r.PARAM_ID, r.VALUE_ID, r.OP_ID, r.ED_ID, 
r.VALUE, r.VALUE2, r.NORM_ID, r.CHECK_STATE 


)  FROM Tbl r WHERE r.Check_State=1)


Получаю: "Missing left parenthesis". Даже не могу понять, что ошибка означает smile
Может в синтаксисе наврал ? Да вроде пробовал и так и сяк..
Comments (1)
ava
Denis Popov | 25.08.2005, 11:59 #

INSERT INTO Tbl (PARAM_ID, VALUE_ID, OP_ID, ED_ID, VALUE, VALUE2, NORM_ID, CHECK_STATE)
SELECT r.PARAM_ID, r.VALUE_ID, r.OP_ID, r.ED_ID, r.VALUE, r.VALUE2, r.NORM_ID, r.CHECK_STATE
FROM Tbl r
WHERE r.Check_State=1;
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit