sql >> データベース >  >> RDS >> Oracle

SQLclを使用してjdbc経由で接続できないのはなぜですか

    SIDとサービス名が同じではないようです。 SQL Developerでは、:vdbsl4のコロンで示されているように、少なくとも表示したカスタムJDBCURLではSIDを使用しているようです。 。

    /vdbsl14のスラッシュで示されているように、SQLclURLはサービス名を使用しています。 。代わりにSIDを使用する(つまり、/を:に変更する)ことは、JDBCを使用しているため機能するはずです:

    sqlcl username/[email protected]:1521:vdbsl14
    

    あるいは(そしてできれば、私の意見では)あなたのサービス名が実際に何であるかを調べてください。データベースに対して十分な権限がある場合は、show parameters service_namesを実行できます。 SQL Devleoperから、またはDBAとしてサーバーにアクセスできる場合は、lsnrctl servicesを実行できます。 、またはtnsnames.oraを見てください サービス名を示すTNSエイリアスが定義されている場合。 (listener.ora 役に立たない可能性がありますが、ヒントを提供したり、運が良ければデフォルトのサービス名を表示したりできます。

    そのサービス名は、JDBCURLで/service_nameのように使用できます。 。

    SQLcl(またはSQL * Plus)のTNSエイリアスを使用することもできます。すでにtnsnames.oraをお持ちの場合があります 利用可能;そうでない場合は、サーバーからコピーするか、独自に作成できる可能性があります。これは、SIDまたはサービス名を参照できます。

    完全なTNS記述をSQL*Plus(SQLclについてはよくわかりません)に渡すこともできますが、それは少し不快です。 tnsnames.oraを持っていない/欲しい場合 「easyconnect」構文を使用できます。これはSQLclに使用しているものと同じですが、 サービス名にするために、SIDを許可しません。




    1. サーバーがdblinkの使用中にパスワードを要求しない場合、非スーパーユーザーは接続できません

    2. MySqlの階層データ

    3. OracleDUALテーブルを再作成します

    4. UbuntuでMySQLのSSL/TLSを有効にする方法