A5:SQL Mk-2

開発のこと、日々のこと

Oracle 12c に対する直接接続について

ホーム フォーラム A5:SQL Mk-2掲示板 Oracle 12c に対する直接接続について

このトピックには8件の返信が含まれ、2人の参加者がいます。2 週間前 松原正和 さんが最後の更新を行いました。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #1428 返信

    よういち

    いつも使わせていただいており、重宝しております。ありがとうございます。

    Oracle 12c環境(Windows 12.2.0.1.180228)へ、直接接続でテスト接続しようとすると、[ORA-01017:ユーザー名/パスワードが無効です。ログオンは拒否されました。]のエラーが出て、接続することができません。ラジオボタンを隣(OCI経由)にすると、テスト接続が通るので、単純なユーザー、パスワード指定の誤りではないと考えています。
    また、当該サーバーにて、sqlplusコマンドからの接続も通ります。

    直接接続は、UniDACなるコンポーネントを利用されている、とのことですが、こちらがまだ新しいものに対応してない等の可能性があったりするのかなぁ、とも思い、うまく原因を絞ることができません。

    お心あたり等、ありますでしょうか?

    #1429 返信

    松原正和
    キーマスター

    よういちさんこんにちは。

    A5:SQL Mk-2はVersion 2.12系(またはそれ以下)でしょうか?

    A5:SQL Mk-2はVersion 2.12系のOracle直接接続用ライブラリは Oracle Client 11g互換ですが、Oracle 12c R2ではデフォルトではOracle Client 12cでないと接続できません。このため、接続時にエラーとなってしまいます。
    (SQLNET.ALLOWED_LOGON_VERSION_SERVERの設定値)

    Version 2.13系のベータ版はOracle Client 12c互換の直接接続ライブラリを内蔵するので接続できるはずです。

    #1430 返信

    よういち

    早速の回答、ありがとうございました。
    失礼しました。バージョン記載できていませんでした。

    利用させていただいていたのは、2.12.3でした。
    また、β版のリリースノートについて確認させていただきました。
    まさしく、該当するかと思います。いくつかパターンを確認しましたので、記載させていただきます。(もしかしたら、最新のパッチ(12.2.0.1.180228)に、何かあるのかもしれません。。)
    (12.2だったら、必ずしもβ版でないといけない、というわけでもなさそうです。)

    ・無印の12.2.0.1 は、2.12.3でも直接接続できました。
    ・無印の12.2.0.1.180116 は、2.12.3でも直接接続できました。
    ・無印の12.2.0.1.180228 は、2.12.3では、直接接続できませんでした。
    ※12.2.0.1.180228で、2.13β47では、12.2.0.1.180228の環境をすでに壊してしまったので、確認できていません。。

    一つ前のパッチで期待する動作になるため、これで行こうと思います。お騒がせしました。

    #1431 返信

    よういち

    何度もすみません。OS再起動が契機か、「無印の12.2.0.1.180116 は、2.12.3でも直接接続できました」も繋げなくなりました。また、β版に切り替えると、直接接続できるようになりましたので、解決とさせてください。ありがとうございました。
    β版が正規版になる日を、楽しみにお待ちしております。

    #2336 返信

    フク

    Visual Studio 2017 の環境でコンソールアプリケーション練習プログラムを作りました。Oracle 12c環境(Windows 12.2.0.1.)へ、OCCIを利用して直接接続しようとすると、[ORA-01017:ユーザー名/パスワードが無効です。ログオンは拒否されました。]のエラーが出て、接続することができません。でも、同じユーザーでSQLPLUSコマンドで接続出来ます。いろいろ調べましたが、どうしても原因は分かりません。回答をお願い致します。

    念の為、ソースコードを添付します。
    #include “stdafx.h”
    #include <iostream>
    #include <occi.h>

    using namespace std;
    using namespace oracle::occi;

    const string userName = “HR”;
    const string password = “HR123”;
    const string connectString = “SRV_PDB3”; //接続識別子

    int main(int argc, char* argv[])
    {
    std::cout << “Open database……” << endl;

    try {
    Environment* env = Environment::createEnvironment();
    Connection* con = env->createConnection(userName, password, connectString);

    Statement* stmt = con->createStatement(“SELECT ‘Hello, OCCI World!’ AS Message FROM DUAL”);
    ResultSet* rs = stmt->executeQuery();
    while (rs->next())
    {
    cout << rs->getString(1) << endl;
    }
    stmt->closeResultSet(rs);
    con->terminateStatement(stmt);
    env->terminateConnection(con);
    Environment::terminateEnvironment(env);
    }
    catch (oracle::occi::SQLException &e) {
    std::cout << e.what();
    }

    return 0;
    }

    #2345 返信

    松原正和
    キーマスター

    フクさんこんにちは。

    OCCIは私は触ったことが無いのですが、「SQLNET.ALLOWED_LOGON_VERSION_SERVER」の設定は変更できないでしょうか?。これが原因ならそれで解決するのではないかと思います。

    OCCIのライブラリのバージョンが古いとかそういうこともあるかもしれません。如何でしょうか?。

    #2358 返信

    フク

    松原さん
    こんにちは。

    ご回答ありがとうございます。

    今 
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    設定しています。

    = 11 の設定でも試しましたが、ダメでした。

    不思議なのは、SQLPLUSコマンドで直接接続するのは全然問題ない。
    (sqlplus hr/hr123@SRV_PDB3 接続OK。)

    他のユーザー、例えばsystemユーザーで試しても、
    SQLPLUSコマンドで直接接続するのは全然問題ないですが、OCCIを通して接続すると、
    [ORA-01017:ユーザー名/パスワードが無効です。ログオンは拒否されました。]のエラーが出ました。

    本当に困ります。

    #2359 返信

    フク

    補足:OCCIのライブラリは最近ダウンロードしたoracle database 12c (12.2.0.1.0 – 64bit Production)付いているものです。
    古いとは思えないかな・・・・・・

    #2370 返信

    松原正和
    キーマスター

    フクさんこんにちは。回答が遅くなり申し訳ありません。
    (週末くらいしか解凍できないので…)

    なんでしょうね。OCCIは触ったことはないのですが、サンプルコードを見たところ、少なくとも接続まではおかしなところは見当たらないように思えます。ライブラリも古いものでないとなると、ちょっとお力になれないかもしれません。

    teratailなどでは質問されましたでしょうか?。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
返信先: Oracle 12c に対する直接接続について
あなたの情報:




コメントは受け付けていません。