Monday, August 31, 2020

[VB.Net][Oracle][Resolved] oracle.DataAccess.Client.OracleException ORA-12154: TNS: COULD NOT RESOLVE THE CORRECT IDENTIFIER SPECIED.

Error message:

oracle.DataAccess.Client.OracleException ORA-12154: TNS: COULD NOT RESOLVE THE CORRECT IDENTIFIER SPECIED.

at Orcale.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, intPtr opsErrCtx, OpcSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)

at Orcale.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr epsErrCtx, Object src)

at Oracle.DataAccess.Object.OracleConnection.Open()

at WindowsApplication1.Form1.Form1_load(Object sender,EventArgs e) at C:\Users\g44612\Documents\Visual Studio 2008\Projects\test\test\Form1.vb : line 12

Source:

Try

Dim oradb As String = "Data Source=books;User Id=admin;password=password"

    conn=New OracleConnection(oradb)

    conn.Open()


    Dim cmd As New OracleCommand

    cmd.connection = conn

    cmd.commandText = "SELECT COUNT(*) AS amount FROM BATCH"

    Dim dr As OracleDataReader = cmd.ExceuteReader()

    dr.Read()


    Dim amount As String = dr.Item("amount")

    Debug.WriteLine("Amount:"+amount)

catch ex As Exception

    Debug.WriteLine(ex.toString())

Finally

    conn.dispose()

End Try


Correction

The source code show I used TNS alias to create connection. Here is the example TNS Alias from oofical site:

"user id=scott;password=tiger;data source=sales";

TNS alias is in connection string and looks like this:

 Dim oradb As String = "Data Source=(DESCRIPTION=" _

 + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521)))" _

 + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _

 + "User Id=scott;Password=tiger;"

 

The reason why I got error is cos I am not entered the full address of ther server which hosted the Oracle database, 

Try

Dim oradb As String = "Data Source=192.168.1.1/books;User Id=admin;password=password"

    conn=New OracleConnection(oradb)

    conn.Open()


    Dim cmd As New OracleCommand

    cmd.connection = conn

    cmd.commandText = "SELECT COUNT(*) AS amount FROM BATCH"

    Dim dr As OracleDataReader = cmd.ExceuteReader()

    dr.Read()


    Dim amount As String = dr.Item("amount")

    Debug.WriteLine("Amount:"+amount)

catch ex As Exception

    Debug.WriteLine(ex.toString())

Finally

    conn.dispose()

End Try


Reference:

https://stackoverflow.com/questions/14486632/asp-net-webapp-ora-12154-tnscould-not-resolve-the-connect-identifier-specifi

https://docs.oracle.com/cd/B28359_01/win.111/b28375/featConnecting.htm

1 comment :