Below are the code for read tnsname.ora file(tns name) in vb.net. Through below functions you can get the information of the tns.
//Declare namespace
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions
Imports System.IO
Public Class ReadTNS
//Function for Load TNS Name
Public Function LoadTNSNames() As List(Of String)
Dim DBNamesCollection As New List(Of String)()
Dim regPattern As String = "[\n][\s]*[^\(][a-zA-Z0-9_.]+[\s]*"
Dim tnsNamesOraFilePath As String = GetPathToTNSNamesFile()
If Not tnsNamesOraFilePath.Equals("") Then
' Verify file exists
Dim tnsNamesOraFile As New FileInfo(tnsNamesOraFilePath)
If tnsNamesOraFile.Exists Then
If tnsNamesOraFile.Length > 0 Then
'read tnsnames.ora file
Dim tnsNamesContents As String = File.ReadAllText(tnsNamesOraFile.FullName)
Dim numMatches As Integer = Regex.Matches(tnsNamesContents, regPattern).Count
Dim col As MatchCollection = Regex.Matches(tnsNamesContents, regPattern)
For Each match As Match In col
Dim m As String = match.ToString()
m = m.Trim()
DBNamesCollection.Add(m.ToUpper())
Next
End If
End If
End If
Return DBNamesCollection
End Function
//Function for Get path of TNS File
Private Shared Function GetPathToTNSNamesFile() As String
Dim systemPath As String = Environment.GetEnvironmentVariable("Path")
Dim reg As New Regex("[a-zA-Z]:\\[a-zA-Z0-9\\]*(oracle|app)[a-zA-Z0-9_.\\]*(?=bin)")
Dim col As MatchCollection = reg.Matches(systemPath)
Dim subpath As String = "network\ADMIN\tnsnames.ora"
For Each match As Match In col
Dim path As String = match.ToString() & subpath
If File.Exists(path) Then
Return path
End If
Next
Return String.Empty
End Function
End Class
thank you!
ReplyDeleteMost welcome.
DeleteMost welcome, can i do any help to you.
ReplyDelete