2012-04-13 3 views
1

열 크기로 내 테이블을 업데이트하는 PL/SQL 스크립트를 만들려고했습니다. 내 표는 다음과 같습니다 열 크기로 LOOP 업데이트

| ID | TEXT | SIZE | 
-------------------- 
| 1 | .... | null | 
| 2 | .... | null | 
| 3 | .... | null | 
... 

내가 PL/SQL 스크립트가 특정 문서에 대한 텍스트의 길이를 따라 크기 열을 기입 한 후 TEXT 컬럼의 내용을 삭제하고 싶습니다. 여기

내가 무엇을 시도했다입니다 : 좋은 이유가없는 한

DECLARE 
cursor s1 is select id from table where size is null; 
BEGIN for d1 in s1 loop 
    update table set size = (select length(TEXT) from table where id = d1) where id=d1; 
end loop; 
END; 
/

답변

4

, 순수 SQL에서이 작업을 수행 (또는 PL/SQL에 다음 문을 넣어) :

UPDATE t 
SET size = LENGTH(text), 
    text = NULL 
WHERE size IS NULL; 

이를 모두 읽기 쉽고 빠릅니다.

+0

예, 당연히, 내가 PL/SQL 방식으로 갔다. – Marko