私はSQL Serverのユーザーです。
オラクルを使用しているプロジェクトに参加しています(ほとんど使用していません)。 ODBC接続を作成して、MS Accessでデータにアクセスできるようにする必要があります。 私のマシンにはoraHome90というアプリケーションがあります。net configuration utility "でリスナーと呼ばれるものを設定できるようですが、"Local Net Service Name Configuration "も必要だと思います。 ITサポートからODBC接続を設定するための情報をもらいました。思いつく限りの組み合わせを試してみました。Oracleサーバーのデータベースに "ログイン "するためのテストは正常に通過できました。 ODBC接続を作成しようとすると、次のようなエラーが出ます。ORA-12154: TNS: サービス名を解決できませんでした。
ゼロからのスタートを想定して、以下の情報でデータベースに接続できると思われます.....何か提案やコメントはありますか?注:最終的にはWebサイトのASPページでデータを照会することになりますが、まずはMS Access経由のODBC接続でデータを見られることを証明しなければなりません。
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")
from http://ora-12154.ora-code.com
ORA-12154:TNS:指定された接続識別子を解決できない
原因:データベースまたはその他のサービスへの接続が接続識別子を使用して要求され、指定された接続識別子が構成された命名法の1つを使用して接続記述子に解決できませんでした。例えば、使用された接続識別子のタイプがネットサービス名であった場合、ネットサービス名がネーミングメソッドのリポジトリで見つからないか、リポジトリが見つからないか、または到達できませんでした。
Action:
ローカルネーミング(TNSNAMES.ORAファイル)を使用している場合。
Oracle Netプロファイル(SQLNET.ORA)のNAMES.DIRECTORY_PATHパラメータの値の1つとして、"TNSNAMES"がリストアップされていることを確認してください。
TNSNAMES.ORAファイルが存在し、適切なディレクトリにあり、アクセス可能であることを確認します。
接続識別子として使用されるネットサービス名がTNSNAMES.ORAファイルに存在することを確認してください。
TNSNAMES.ORAファイルのどこにも構文エラーがないことを確認します。一致しない括弧や迷子の文字を確認してください。TNSNAMES.ORAファイルにエラーがあると、使用できない場合があります。
ディレクトリネーミングを使用している場合。
Oracle Netプロファイル(SQLNET.ORA)のNAMES.DIRETORY_PATHパラメータの値の一つとして、"LDAP"がリストアップされていることを確認してください。
LDAP ディレクトリサーバーが起動しており、アクセス可能であることを確認してください。
接続識別子として使用するネットサービス名またはデータベース名がディレクトリで構成されていることを確認してください。
接続識別子として、完全修飾されたネットサービス名または完全なLDAP DNを指定することで、使用しているデフォルトのコンテキストが正しいことを確認してください。
イージーコネクトネーミングを使用している場合。
Oracle Netプロファイル(SQLNET.ORA)のNAMES.DIRETORY_PATHパラメータの値の一つとして、"EZCONNECT"がリストアップされていることを確認してください。
指定したホスト、ポート、サービス名が正しいことを確認してください。
接続識別子を引用符で囲んでみてください。名前の付け方の詳細については、『Oracle Net Services Administrators Guide』または Oracle オペレーティングシステム別ガイドを参照してください。
TNSNAMESネーミングを使用していることを前提に、いくつかのことを説明します。
SERVICENAME_alias = > > (説明)
(Description = (ADDRESS = (PROTOCOL = TCP)(HOST = HOST.XYZi.com)(PORT = 1521)) 接続データ = (サービス名 = SERVICENAME)
これは、Oracleの標準ポートである1521を使用していることを前提としています。なお、servicename_aliasには、ローカルシステムで使用したい任意の名前を指定できます。また、(SERVICENAME=SERVICENAME)ではなく、(SID=SERVICENAME)を指定する必要がある場合もあります。
Warren氏とDCookie氏が解決策を説明してくれましたが、一つ強調しておきたいのは、tnsping
の使用です。これを使って、接続を試みる前に、TNSNamesが正しいことを証明することができます。
TNSNAMESを正しく設定したら、ODBCを使用するか、またはオラクルのネイティブ接続を使用するTOraを試してみてください。TOraやそれに似たもの(TOAD、SQL*Plusなど)は、SQLをデバッグしたり改善したりするのに非常に役立つでしょう。
最後になりましたが、最終的に ASP.net で接続する際には、Oracle データ接続ライブラリを使用できることを覚えておいてください。多くのリソースについては Oracle.com を参照してください。