暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Repetition

原创 胡佳伟 2020-04-14
928

原文作者:Jonathan lewis
原文地址:https://jonathanlewis.wordpress.com/2011/03/29/repetition/

Repetition

— Jonathan Lewis @ 9:42 pm BST Mar 29,2011

构建Oracle活动模型的一个问题是很容易构建错误的模型。最常见的问题之一就是重复性操作—如何编写一行连续多次重复简单操作的代码。编写一个简单的PL/SQL循环通常是一种适当的方法,但是在某些情况下,PL/SQL循环的行为与一长串单个SQL语句是非常不同的—这就是为什么我偶尔会使用一种非常简单的方法来避免这种特殊的陷阱。

如果你检查了我的数据库工作区的目录,你会发现一个有趣的名称模式,由五个(随后增加到7个)非常短的脚本组成:

q:> dir start*.sql Volume in drive Q has no label. Volume Serial Number is A8BA-79AA Directory of q:\ 28/03/2011 08:56 350 start_1.sql 13/01/2005 13:38 110 start_10.sql 13/01/2005 13:39 120 start_100.sql 13/01/2005 13:39 130 start_1000.sql 13/01/2005 13:40 140 start_10000.sql 11/02/2012 01:01 190 start_100000.sql 11/02/2012 01:01 202 start_1000000.sql 7 File(s) 930 bytes 0 Dir(s) 8,238,260,224 bytes free

start_10000.sql 脚本只包含10行:

@ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000 @ start_1000

如果发现脚本start_1000.sql也只包含10行,你不会感到惊讶:

@ start_100 @ start_100 @ start_100 @ start_100 @ start_100 @ start_100 @ start_100 @ start_100 @ start_100 @ start_100

一直到脚本start_1.sql包含了我想运行多次的代码为止。

显然,有些情况下,你需要一个更微妙的框架,但编写一个小脚本来保存你希望不断重复的代码片段,然后只需调用@start_10000.sql就可以运行10000次,这非常方便。

最后修改时间:2021-12-07 18:32:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论