gpt4 book ai didi

regex - Powershell - 从 SQLPlus 查询中检索计数

转载 作者:行者123 更新时间:2023-12-02 03:18:14 25 4
gpt4 key购买 nike

我正在使用一个 powershell 脚本,它利用 SQLPlus 查询 oracle 数据库。

查询是:select count(*) from table

powershell 查询输出:

SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 6 09:50:52 2016

Copyright (c) 1982, 2010, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options


COUNT(*)
----------
50

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

我目前正在使用下面的语句来检索计数,尽管它似乎没有捕获结果。

if($file -match 'count (?<count>\d+)'){$count=[int32]$matches['count']}

任何帮助/指导将不胜感激。谢谢!

最佳答案

我看到一个问题和一个潜在问题。后者是我怀疑 $file 是一个字符串数组。这对你不利,因为你正在寻找一个基于上面几行文本的数字。

问题是您的正则表达式不是多行的,并且在您的样本中数字没有出现在与计数相同的行上。您的正则表达式只会匹配 Count 50。这不是它在您显示的文本中的显示方式。

Two ensure both points 让 $file 成为一个字符串,然后运行一个多行正则表达式来匹配“COUNT”之后遇到的第一个数字。保留您拥有的命名匹配逻辑,因为它很不错。

# This can most likely be moved to where this is read in.
$file = $file | Out-String

# try and match the regex.
if($file -match "(?s)Count.*?(?<count>\d+)"){
[int32]$Matches.Count
}

关于regex - Powershell - 从 SQLPlus 查询中检索计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35242429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com