我的名字。ora文件有2种格式:db\U cl=(描述=(地址=(协议=TCP)(主机=a55)(端口=1522))(连接\U数据=(服务器=专用)(服务\U名称=cl)))
dbcd=(描述=(地址=(协议=TCP)(主机=a66)(端口=1521))(连接\u数据=(服务器=专用)(服务\u名称=cd)))
myx5=(描述=(地址=(协议=TCP)(主机=v55)(端口=1521))(连接\u数据=(服务器=专用)(服务\u名称=x5)))
我想获取特定service\u名称或sid的主机名。在某些情况下,它是sid,在某些情况下,它是service\u name。为了获得主机名,我应该用grep搜索什么?在本例中,我想获取html" target="_blank">字符串“host\u name”。
****更新****我也需要db_name2,如果有人可以帮助
@drf:尝试:
awk '/HOST/{sub(/).*/,"",$(NF-2));print $(NF-2)}' Input_file
只需为每行查找字符串主机,然后替换即可)。*从awk与其中的字符串HOST匹配的行的第二个最后一个字段开始,它应该为您提供HOST\u名称。
编辑:要查找特定的SID或服务名称,请尝试:
awk '/HOST/{sub(/).*/,"",$(NF-2));HOST=$(NF-2);next} /SID/{print HOST}'
将SID更改为您要搜索的sid或服务名称,然后它应该可以工作。
编辑2:
awk '/db_name/{sub(/=/,"",$1);DB=$1}/HOST/{sub(/).*/,"",$(NF-2));HOST=$(NF-2);next} /chumma/{print DB ORS HOST}'
编辑3:
awk '{gsub(/\)|\(/,"");;for(i=1;i<=NF;i++){if($i=="HOST"){host=$(i+1)};if($NF=="cd"){val="DB_NAME= "$1", HOST_NAME= "host",SID/SERVICE_NAME= "$NF}};if(val){print val;val=""}}' Input_file
或(溶液的非线性形式也如下):
awk '{gsub(/\)|\(/,"");
for(i=1;i<=NF;i++){
if($i=="HOST"){
host=$(i+1)
};
if($NF=="cd") {
val="DB_NAME= "$1", HOST_NAME= "host",SID/SERVICE_NAME= "$NF
}
};
if(val) {
print val;
val=""
}
}
' Input_file
您可以在上面的代码中放置另一个要搜索的服务或ssid。
如果perl可用,请尝试以下命令:
perl -nle 'BEGIN{$service = shift}
$host = $1 if /HOST\s*=\s*([^\s\)]+)/i;
print $host if /\((SID|SERVICE_NAME)\s*=\s*$service\)/;
' blabla tnsnames.ora
它存储在主机= 并在遇到时打印它(**SID/SERVICE\u NAME**=blabla)
你有: Oracle数据库 Oracle客户端安装,包括SQL*Plus #1的TNS信息 但是没有TNSNames。ORA文件或创建和维护ORA文件的愿望 如何使SQL*Plus连接正常运行?
我做了一些研究,有一个建议可以使用双重 但是现在我得到了ORA-06502/ORA-06512错误: ORA-06502:PL/SQL:erreur numérique ou erreur sur une valeur ORA-06512:àsys.xmltype“,ligne 272 ORA-06512:àligne 1 06502。00000-“PL/SQL:数值或值错误%s” *原因:出现算
问题内容: 我有一个方法,该方法将为准备好的语句执行带有QueryParameters列表的查询。该和只是小的Java bean和基础上,应该是不言自明的就是你在这里看到。我正在尝试使用,而不是使用,其中是STRING类型,值是。但是,我遇到了错误。我的代码和输出如下。这是怎么回事? 输出: 问题答案: 我相信参数仅适用于 值 -不适用于SQL查询的一部分,例如表格。可能有一些数据库支持您要实现的
从早上开始,我无法使用Oracle SQL Developer连接到我的locat DB(Oracle XE 11g)。 我尝试了关机和启动服务。 错误消息 **状态:失败-测试失败:侦听器拒绝连接,出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的SID** 但是我可以作为sysdba连接。 侦听器文件: TNS文件: lsnrctl状态:结果
问题内容: 我正在使用Java / Groovy通过RegEx在字符串上查找匹配项(并提取它们)。在性能上,可以说在5000个字符的字符串上找到200个或更多正则表达式匹配项的最佳方法是什么。简而言之,是否可以避免为每个RegEx扫描字符串? 我可以使用java提供的Pattern和Matcher类,但随后必须编译200个模式,然后将字符串传递给matcher 200次。这是唯一的方法吗? 问题答
本文向大家介绍Java Regex中的Regex元字符,包括了Java Regex中的Regex元字符的使用技巧和注意事项,需要的朋友参考一下 元字符是在Java正则表达式中具有特殊含义的字符。 Java正则表达式中支持以下元字符。