1

我试图创建 PL/SQL 脚本来更新我的表的列大小。我的表如下所示:

| 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

1 回答 1

4

除非有充分的理由,否则请在纯 SQL 中执行此操作(或将以下语句放入 PL/SQL 中):

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

这更容易阅读和更快。

于 2012-04-13T07:50:45.907 回答