Когда я выполнить следующую процедуру на моем Oracle SQL DeveloperПожалуйста, отлаживать следующую процедуру ORACLE SQL
create or replace
Procedure Table_Update
IS
s_id VARCHAR2(256 byte);
CURSOR C1 IS
SELECT A.SR_ID
FROM TABLE_2 B,TABLE_1 A
WHERE A.Primary_key=B.Primary_Key;
BEGIN
loop
open c1;
fetch c1 into s_id;
exit when C1%NOTFOUND ;
update TABLE_2 set SR_ID = s_id;
commit;
END LOOP;
CLOSE C1;
END;
table_1 и table_2 имеют аналогичные требования structure.My здесь является SR_ID от table_1 должен быть обновлен до table_2 на основе согласующего первичной key.When я запустить процедуру я получаю следующее сообщение об ошибке
Connecting to the database XXX.
ORA-06511: PL/SQL: CURSOR ALREADY OPEN
ORA-06512: at "Table_Update", line 7
ORA-06512: at "Table_Update", line 13
ORA-06512: at line 2
PROCESS EXITED.
Disconnecting from the database XXX.
я попробовать это снова и снова, пожалуйста, помогите мне
Спасибо
Я не эксперт, но я думаю, что youe отсутствует 'where' пункт в вашем' update' заявлении. – haki
В качестве еще одного замечательного аргумента в пользу отличного ответа a_horse_with_no_name, если вы хотите сделать это таким образом, то есть у вас есть таблица строк 500 м и не можете заблокировать все это, лучше использовать BULK COLLECT и обновить ROWID, поскольку это будет быть намного быстрее. – Ben