/*
獲取oracle服務(wù)名
1。查詢注冊表,獲取oracle安裝根目錄
如:hkey_local_machine/software/oracle/oracle_home reg_sz e:/oracle/ora92
得知oracle服務(wù)名文件所在地:根目錄/network/admin/tnsnames.ora
2。解析該文件,該文件結(jié)構(gòu)如
# ------------------------------------------------
portal =
(description =
(address_list =
(address = (protocol = tcp)(host = 134.104.52.6)(port = 1521))
)
(connect_data =
(service_name = portal)
)
)
3。解析要點:
一行一行獲取再解析
跳過以#打頭的注釋行
過濾掉空格后,首字符在a~z之間的行就包含了oracle服務(wù)名
截取該行第一個“=”號左邊的字符串,trim處理后就是oracle服務(wù)名了
*/
public static string[] getoracletnsnames()
{
try
{
// 查詢注冊表,獲取oracle服務(wù)文件路徑
registrykey key = registry.localmachine.opensubkey("software").opensubkey("oracle");
string home = (string)key.getvalue("oracle_home");
string file = home + @"/network/admin/tnsnames.ora";
// 解析文件
string line;
arraylist arr = new arraylist();
streamreader sr = new streamreader(file);
while ((line = sr.readline()) != null)
{
line = line.trim();
if (line != "")
{
char c = line[0];
if ( c>= 'a' && c<='z')
arr.add(line.substring(0, line.indexof(' ')));
}
}
sr.close();
// 返回字符串?dāng)?shù)組
return (string[])arr.toarray(typeof(string));
}
catch (exception ex)
{
return null;
}
}
新聞熱點
疑難解答
圖片精選