代码之家  ›  专栏  ›  技术社区  ›  MyGGaN

如何在perl中格式化SQL语句(代码样式)

  •  0
  • MyGGaN  · 技术社区  · 11 年前

    我想请你 perlcritic 并且在我的代码中具有易于阅读的SQL查询。目前我是这样做的:

    if (defined $dbh) {
        $sth = $dbh->prepare(<<'SQL'
    SELECT firstname, lastname, email, country
    FROM Person
    JOIN Country ON Person.countryID = Country.ID
    WHERE age = ?
      AND sex = ?
    LIMIT 100
    SQL
        );
    }
    

    语句完全没有缩进,这使得它在上下文缩进时弹出。我觉得这很好,因为它可以很容易地找到声明,并且它们被分成几行,以便于阅读。

    然而,如果上下文没有缩进,这看起来非常混乱。如果可能的话,我不喜欢在stmt中引入换行符或不必要的空格。而且 SQL 在stmt和悬挂的末尾 ); 也不好。

    请就这件事提出一个好的风格指南,我可以采纳。

    1 回复  |  直到 4 年前
        1
  •  6
  •   Dave Cross    11 年前

    我建议通过切换到 DBIx::Class 。如果这有点吓人的话,那么也许是一个中途之家 Data::Phrasebook::SQL .

    通常,在Perl代码中使用原始SQL语句是一个非常糟糕的主意。