0

ストア プロシージャでコメント アウトされたコード /* .. */ を実行時に削除する方法を教えてください。以下に例を示します。私の SP が以下の方法でコメント付きコードのジャンクを見つけた場合、コメント付きコードはすべて、コメント付き記号を含めて削除されます。

/*
    INSERT INTO MATERIAL.GTT_DMD
      (
      asof_src_dt
      , asof_src_tm
      )
        SELECT
       asof_src_dt
       , CAST (asof_src_ts AS  TIME(0)) AS asof_src_tm
     FROM  DEMAND.v_supl SNP_DMD
*/

サポートしてくれてありがとう、正規表現を見つけました

/\*[\w\W]*?(?=\*/)\*/

これがコードを削除する最良の方法であるかどうかを確認するのに役立ちますか. ありがとう。

public void DeleteCommentedCode(string filePath)
    {
        StreamReader input = new StreamReader(filePath);

        Regex pattern = new Regex("/\*[\w\W]*?(?=\*/)\*/");            

          StreamReader streamReader = new StreamReader(filePath);
        StreamWriter streamWriter = new StreamWriter(filePath + ".tmp");

        while (!streamReader.EndOfStream)
        {
            string data = streamReader.ReadLine();
            if(pattern.IsMatch(data))
            {
                data = data.Replace(data, ""); // Replace with empty 
                streamWriter.WriteLine(data);
            }

        }

        streamReader.Close();
        streamWriter.Close();
    }
4

1 に答える 1

1

ストアド プロシージャからコメントを削除するつもりだと仮定すると、ここに SP コンテンツの抽出に関する投稿があります。

C#/SQL すべてのストアド プロシージャとそのコードを取得する

正規表現を使用して試すことができるコメントを削除するには、いくつかの正規表現の例を含む SQL ステートメントのクリーニングに関する良い記事がここにあります。

http://larrysteinle.wordpress.com/2011/02/09/use-regular-expressions-to-clean-sql-statements/

于 2012-09-10T06:55:44.940 に答える