如何从代码中删除所有注释(单行 --)

发布于 2024-10-12 12:40:44 字数 982 浏览 2 评论 0原文

我们正在处理 PL/SQL 中的长文本代码,并且经常发现代码量只是由于不必要的注释而增加。其中大多数是单行样式注释。

如何编写一个脚本来从代码中删除所有此类注释行?

例如: 原始代码:

DECLARE
   a  date := 0;
   -- NHT20302939 Dt 22.09.2009 Start
   b  VARCHAR2(1)  := 'N';
   -- NHT20302939 Dt 22.09.2009 End'
BEGIN
   -- NHT20302939 Dt 22.09.2009 Start
   a = GET_DATE();
   -- NHT20302939 Dt 22.09.2009 End
   if a > '22-MAR-2010' THEN
     -- NHT20302939 Dt 22.09.2009 Start
     Null;
     -- NHT20302939 Dt 22.09.2009 End
   else
      if myschema.PROCEDURE(b,
                        a) = FALSE THEN
     raise form_trigger_failure
   end if;
 end if;
END;

所需代码:

  DECLARE
    a  date := 0;
    b  VARCHAR2(1)  := 'N';
  BEGIN
     a = GET_DATE();
     if a > '22-MAR-2010' THEN
        Null;
     else
        if myschema.PROCEDURE(b,
                              a) = FALSE THEN
           raise form_trigger_failure
        end if;
     end if;
  END;

提前谢谢... 苏达萨塔雷

We are dealing with long texts of code in PL/SQL and often we find that the code volume has increased just due to unneccassy comments. Most of them are single line style comments.

How do I write a script which will remove all such comment lines from the code?

For example:
Original code:

DECLARE
   a  date := 0;
   -- NHT20302939 Dt 22.09.2009 Start
   b  VARCHAR2(1)  := 'N';
   -- NHT20302939 Dt 22.09.2009 End'
BEGIN
   -- NHT20302939 Dt 22.09.2009 Start
   a = GET_DATE();
   -- NHT20302939 Dt 22.09.2009 End
   if a > '22-MAR-2010' THEN
     -- NHT20302939 Dt 22.09.2009 Start
     Null;
     -- NHT20302939 Dt 22.09.2009 End
   else
      if myschema.PROCEDURE(b,
                        a) = FALSE THEN
     raise form_trigger_failure
   end if;
 end if;
END;

Desired code:

  DECLARE
    a  date := 0;
    b  VARCHAR2(1)  := 'N';
  BEGIN
     a = GET_DATE();
     if a > '22-MAR-2010' THEN
        Null;
     else
        if myschema.PROCEDURE(b,
                              a) = FALSE THEN
           raise form_trigger_failure
        end if;
     end if;
  END;

Thnaks in advance ...
Suddha Satta Ray

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

潜移默化 2024-10-19 12:40:44

对于存储的包、过程等,您可以获得像这样的未注释的源:

select text
from   user_source
where  name = 'MYPACKAGE'
and    type = 'PACKAGE BODY'
and    ltrim(text) not like '--%'
order by line;

For stored packages, procedures etc. you could get the uncommented source like this:

select text
from   user_source
where  name = 'MYPACKAGE'
and    type = 'PACKAGE BODY'
and    ltrim(text) not like '--%'
order by line;
椒妓 2024-10-19 12:40:44

尝试进行文件内联编辑:

sed -e '/^\s*--.\+/d' -i yourFile.txt

不要忘记之前备份所有文件!

Try this for inline editing of file:

sed -e '/^\s*--.\+/d' -i yourFile.txt

Don't forget to backup all files before!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文