Saya adalah pengguna SQL Server.
Saya sedang dalam proyek yang menggunakan oracle (yang jarang saya gunakan) Saya perlu membuat koneksi ODBC sehingga saya dapat mengakses beberapa data melalui MS Access Saya memiliki aplikasi di mesin saya yang disebut oraHome90. Tampaknya untuk memungkinkan konfigurasi sesuatu yang disebut pendengar dalam "utilitas konfigurasi net", saya pikir bahwa "Konfigurasi Nama Layanan Net Lokal" juga perlu dilakukan. Dukungan TI memberi saya informasi ini untuk mengatur koneksi ODBC. Saya telah mencoba setiap kombinasi yang dapat saya pikirkan. Saya bisa melewati tes yang berhasil melewati tes untuk "login" ke database server oracle. Ketika saya mencoba membuat koneksi ODBC saya mendapatkan kesalahan berikut: ORA-12154: TNS: Tidak dapat menyelesaikan nama layanan.
Dengan asumsi bahwa saya ingin memulai dari awal dan informasi berikut seharusnya memungkinkan saya untuk terhubung ke database..... Ada saran atau komentar? Catatan: pada akhirnya proyek ini akan memiliki situs web .ASP page yang meminta data, tetapi saya harus terlebih dahulu membuktikan bahwa saya dapat melihat data menggunakan koneksi ODBC melalui MS Access
Service name: SERVICENAME
HOST = HOST.XYZi.com
User Id: MYUSERID
Password: MYPASSWORD
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Oracle Connection
Dim ocst
Dim oconn
ocst = "Provider=OraOLEDB.Oracle;" & _
"Data Source=DATASOURCE;" & _
"User ID=CHIJXL;" & _
"Password=password;"
set oconn = CreateObject("ADODB.Connection")
dari http://ora-12154.ora-code.com
ORA-12154: TNS:tidak dapat menyelesaikan pengidentifikasi koneksi yang ditentukan
Penyebab: Sambungan ke database atau layanan lain diminta menggunakan pengenal sambungan, dan pengenal sambungan yang ditentukan tidak dapat diselesaikan menjadi deskriptor sambungan menggunakan salah satu metode penamaan yang dikonfigurasi. Misalnya, jika jenis pengidentifikasi sambungan yang digunakan adalah nama layanan net maka nama layanan net tidak dapat ditemukan dalam repositori metode penamaan, atau repositori tidak dapat ditemukan atau dijangkau.
Tindakan:
Jika Anda menggunakan penamaan lokal (file TNSNAMES.ORA):
Pastikan bahwa "TNSNAMES &" terdaftar sebagai salah satu nilai parameter NAMES.DIRECTORY_PATH di profil Oracle Net (SQLNET.ORA)
Verifikasi bahwa file TNSNAMES.ORA ada dan berada di direktori yang tepat dan dapat diakses.
Periksa apakah nama layanan net yang digunakan sebagai pengidentifikasi koneksi ada di file TNSNAMES.ORA.
Pastikan tidak ada kesalahan sintaksis di mana pun di file TNSNAMES.ORA. Cari tanda kurung yang tidak cocok atau karakter yang tersesat. Kesalahan dalam file TNSNAMES.ORA dapat membuatnya tidak dapat digunakan.
Jika Anda menggunakan penamaan direktori:
Verifikasi bahwa " LDAP &" terdaftar sebagai salah satu nilai parameter NAMES.DIRETORY_PATH di profil Oracle Net (SQLNET.ORA).
Verifikasi bahwa server direktori LDAP sudah aktif dan dapat diakses.
Verifikasi bahwa nama layanan net atau nama database yang digunakan sebagai pengidentifikasi koneksi dikonfigurasi dalam direktori.
Verifikasi bahwa konteks default yang digunakan sudah benar dengan menentukan nama layanan net yang memenuhi syarat atau LDAP DN lengkap sebagai pengidentifikasi sambungan.
Jika Anda menggunakan penamaan sambungan mudah:
Verifikasi bahwa "EZCONNECT" terdaftar sebagai salah satu nilai parameter NAMES.DIRETORY_PATH di profil Oracle Net (SQLNET.ORA).
Pastikan host, port, dan nama layanan yang ditentukan sudah benar.
Coba tutup pengidentifikasi koneksi dalam tanda kutip. Lihat Oracle Net Services Administrators Guide atau panduan khusus sistem operasi Oracle untuk informasi lebih lanjut tentang penamaan.
Dengan asumsi Anda menggunakan penamaan TNSNAMES, berikut ini ada beberapa hal yang harus dilakukan:
SERVICENAME_alias = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = HOST.XYZi.com)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = SERVICENAME))
Ini dengan asumsi Anda menggunakan port standar Oracle 1521. Perhatikan bahwa servicename_alias bisa berupa nama apa pun yang ingin Anda gunakan pada sistem lokal. Anda mungkin juga menemukan bahwa Anda perlu menentukan (SID = SERVICENAME) bukannya (SERVICENAME=SERVICENAME).
@Warren dan @DCookie telah membahas solusinya, satu hal yang perlu ditekankan adalah penggunaan tnsping
. Anda dapat menggunakan ini untuk membuktikan bahwa TNSNames Anda benar sebelum mencoba untuk terhubung.
Setelah Anda mengatur tnsnames dengan benar, Anda dapat menggunakan ODBC atau mencoba TOra yang akan menggunakan koneksi oracle asli Anda. TOra atau sesuatu yang serupa (TOAD, SQL*Plus dll) akan terbukti sangat berharga dalam debugging dan meningkatkan SQL Anda.
Terakhir namun tidak kalah pentingnya ketika Anda akhirnya terhubung dengan ASP.net, ingatlah bahwa Anda dapat menggunakan pustaka koneksi data Oracle. Lihat Oracle.com untuk sejumlah sumber daya.