Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Anonymous
Not applicable

SetAllDatasetConnections for Oracle and SQL server

Hi,

 

I have a direct query report that needs to be used by multiple clients. I've created workspaces per client and my application determines which workspace to access and fetches the report from there. However, when I launch the report, I need to make sure the report is pointing to the right data source. I do have the tnsname and database name I have to connect to but my report fails to update the datasetconnectionstring. 

 

Snippet

var connectionDetails = new ConnectionDetails()
                {
                    ConnectionString = connectionString
                };
                var powerBiClient = await _client.GetPowerBiClient();
                var dataset = await powerBiClient.Datasets.GetDatasetByIdInGroupAsync(groupId, datasetId);
                if (dataset.IsEffectiveIdentityRequired.Value && dataset.IsEffectiveIdentityRolesRequired.Value)
                {
                    var response = await powerBiClient.Datasets.SetAllDatasetConnectionsInGroupAsync(groupId, datasetId, connectionDetails);
                    LogHelper.LogInfo(string.Format("Dataset {0} in workspace {1} update with connection string {2}", datasetId, groupId, connectionString));
                    //await powerBiClient.Datasets.RefreshDatasetInGroupAsync(groupId, datasetId);
                }

The connectionstring is of the following format "data source= <tnsname>" for Oracle database and "Data Source=<serverName>; Initial Catalog=<databasename>;" for SQL server database.

reports using Oracle  give me an error on the report.

Reports using SQL Server run through fine but don't update the dataset until I manually refresh the dataset.

3 REPLIES 3
Eric_Zhang
Microsoft Employee
Microsoft Employee


@Anonymous wrote:

Hi,

 

I have a direct query report that needs to be used by multiple clients. I've created workspaces per client and my application determines which workspace to access and fetches the report from there. However, when I launch the report, I need to make sure the report is pointing to the right data source. I do have the tnsname and database name I have to connect to but my report fails to update the datasetconnectionstring. 

 

Snippet

var connectionDetails = new ConnectionDetails()
                {
                    ConnectionString = connectionString
                };
                var powerBiClient = await _client.GetPowerBiClient();
                var dataset = await powerBiClient.Datasets.GetDatasetByIdInGroupAsync(groupId, datasetId);
                if (dataset.IsEffectiveIdentityRequired.Value && dataset.IsEffectiveIdentityRolesRequired.Value)
                {
                    var response = await powerBiClient.Datasets.SetAllDatasetConnectionsInGroupAsync(groupId, datasetId, connectionDetails);
                    LogHelper.LogInfo(string.Format("Dataset {0} in workspace {1} update with connection string {2}", datasetId, groupId, connectionString));
                    //await powerBiClient.Datasets.RefreshDatasetInGroupAsync(groupId, datasetId);
                }

The connectionstring is of the following format "data source= <tnsname>" for Oracle database and "Data Source=<serverName>; Initial Catalog=<databasename>;" for SQL server database.

reports using Oracle  give me an error on the report.

Reports using SQL Server run through fine but don't update the dataset until I manually refresh the dataset.


@Anonymous

Per my test, a connection string as below actually works.

"data source=yourOracleServerName:1522/SERVICE_NAME;persist security info=True"
Anonymous
Not applicable

@Eric_Zhang What would your tnsnames.ora file look like locally???


@Anonymous wrote:

@Eric_Zhang What would your tnsnames.ora file look like locally???


# tnsnames.ora Network Configuration File: C:\app\userxxx\virtual\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = myserver.xxxx.xxxx.xxxx.com)(PORT = 1522))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myserver.xxxx.xxxx.xxxx.com)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.xxxxx.xxxx.xxxx.com)
    )
  )

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.