0

2 つの異なるデータベース (Oracle と Postgres) の間で接続文字列を動的に変更しようとしています。 ここに画像の説明を入力

接続文字列を構築することにより、Oracleおよびpostgresのgroovyスクリプトからこの接続文字列を設定しようとしています

if(databaseType.contains("postgre"))
{

   def postgresConnstring=  "jdbc:postgresql://"+databaseHost+":"+databasePort+"/"+databaseUsername+"?user="+databaseUsername+"&password="+databasePassword

  testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(postgresConnstring)
}

else
 if (databaseType.contains("oracle"))
{ 
    def oracleConnString=  "jdbc:oracle:thin:"+databaseUsername+"/"+databasePassword+"@"+databaseHost+":"+databasePort+":"+databaseSid

    testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(oracleConnString)


}

Oracle の JDBC 接続文字列は次のようなものです。jdbc:oracle:thin:${#Project#databaseUserName}/${#Project#databasePassword}@${#Project#databaseHost}:${#Project#databasePort}:${#Project#databaseSid}

したがって、この接続文字列をプロジェクト レベルで設定すると、データベース構成がパスワードの一部を取得し、それをデータベース ホスト フィールドに表示していることがわかります。以下のように。

ここに画像の説明を入力

接続文字列を手動で設定すると、パスワード値が PASS_VALUE に設定されることがわかります。しかし、10文字を超える長さの実際のパスワード値をスクリプトから動的に渡すと、接続文字列はパスワードから残りの文字を取得し、ホスト名に渡します。

誰かがこの問題を解決するのを手伝ってくれませんか??

4

0 に答える 0