使用变量

变量帮助确保在多个位置准确呈现同一个信息和文本。

可以在 Oracle BI 企业版的多个区域引用变量,这些区域包括分析、仪表盘、KPI、操作、代理和条件。例如,假设您要创建一个标题显示当前用户名的分析。可通过引用变量来实现这一点。

有五种类型的变量可供使用:

  • 会话

  • 资料档案库

  • 表示

  • 请求

  • 全局

什么是会话变量?

会话变量是在每个用户登录时进行初始化的变量。

当用户开始会话时,Oracle BI Server 会创建会话变量的新实例并进行初始化。

会话变量的实例与 Oracle BI Server 中的有效会话一样多。会话变量的每个实例都可以初始化为不同的值。

会话变量由初始化块 (INIT BLOCK) 中指定的查询填充。通常只在登录时执行一次这些会话 INIT BLOCK。但是,如果将 INIT BLOCK 标记为延迟,则可以在稍后引用相关变量时执行它。

会话 INIT BLOCK 通常与查询语句相关联,但也可以与 LDAP 对象相关联。有关 INIT BLOCK 的详细信息,请参阅 Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的使用初始化块

会话变量有两种类型:

  • 系统 - Oracle BI Server 和 Oracle BI Presentation Services 用于特定用途的会话变量。

    系统会话变量具有保留名称,这些名称不能用于其他类型的变量 (例如静态变量、动态资料档案库变量和非系统会话变量)。

  • 非系统 - 管理员创建和命名的系统变量。例如,管理员可能会创建用于初始化用户销售区域的 SalesRegion 非系统变量。

管理员使用 Oracle BI 管理工具创建非系统会话变量。

注:

请求变量无法覆盖某些系统会话变量 (例如 USERGUID 或 ROLES)。可以覆盖 DATA_TZ 和 DATA_DISPLAY_TZ (时区) 等其他系统会话变量 (如果已在 Oracle BI 管理工具中配置)。

有关详细信息,请参阅Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的使用资料档案库变量

有关详细信息,请参阅 Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的关于会话变量

什么是资料档案库变量?

资料档案库变量是在任意时间点都具有单个值的变量。

资料档案库变量有两种类型:

  • 静态 - 这种资料档案库变量的值将予以保存,除非管理员决定更改,否则不会发生更改。

  • 动态 - 其值由 INIT BLOCK 中指定的查询填充的资料档案库变量。可以指定刷新 INIT BLOCK 的时间间隔。动态 INIT BLOCK 自动按指定的时间间隔刷新其变量值。

    动态 INIT BLOCK 只能与查询 (即,SQL 语句、ADF 查询或其他支持的数据源) 相关联。有关 INIT BLOCK 的详细信息,请参阅 Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的使用初始化块

管理员使用 Oracle BI 管理工具创建资料档案库变量。

有关详细信息,请参阅 Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的关于资料档案库变量

什么是表示变量?

表示变量创建并用于仪表盘提示。

表示变量是可在创建以下任一类型仪表盘提示的过程中创建的变量:

  • 列提示 - 作为列提示一部分创建的表示变量与某个列相关联,它可采用的值来自于列值。

    要在“新建提示”对话框 (或“编辑提示”对话框) 中创建作为列提示一部分的表示变量,必须在设置变量字段中选择表示变量,然后在变量名字段中输入该变量的名称。

    有关使用列提示的信息,请参阅创建列提示

  • 变量提示 - 作为变量提示一部分创建的表示变量不与任何列相关联,您可以定义它可采用的值。

    要在“新建提示”对话框 (或“编辑提示”对话框) 中创建作为变量提示一部分的表示变量,必须在提示字段中选择表示变量,然后在变量名字段中输入该变量的名称。

    有关使用变量提示的信息,请参阅创建变量提示

表示变量的值由创建该变量时所使用的列提示或变量提示填充。也就是说,每次用户在列提示或变量提示中选择一个或多个值时,表示变量的值就会设置为用户选择的一个或多个值。

什么是请求变量?

请求变量会临时覆盖提示数据库请求。

通过请求变量可以覆盖会话变量的值,但这只在从列提示或变量提示启动的数据库请求期间有效。

注:

请求变量无法覆盖某些系统会话变量 (例如 USERGUID 或 ROLES)。可以覆盖 DATA_TZ 和 DATA_DISPLAY_TZ (时区) 等其他系统会话变量 (如果已在 Oracle BI 管理工具中配置)。

有关详细信息,请参阅Oracle Business Intelligence Enterprise Edition 元数据资料档案库构建器指南中的使用资料档案库变量

可在创建以下任一类型仪表盘提示的过程中创建请求变量:

  • 列提示 - 作为列提示一部分创建的请求变量与某个列相关联,它可采用的值来自于列值。

    要在新建提示对话框 (或编辑提示对话框) 中创建作为列提示一部分的请求变量,必须在设置变量字段中选择请求变量,然后在变量名字段中输入要覆盖的会话变量的名称。

    有关使用列提示的信息,请参阅创建列提示

  • 变量提示 - 作为变量提示一部分创建的请求变量不与任何列相关联,您可以定义它可采用的值。

    要在新建提示对话框 (或编辑提示对话框) 中创建作为变量提示一部分的请求变量,必须在提示字段中选择请求变量,然后在变量名字段中输入要覆盖的会话变量的名称。

    有关使用变量提示的信息,请参阅创建变量提示

请求变量的值由创建该变量时所使用的列提示或变量提示填充。也就是说,每次用户在列提示或变量提示中选择值时,请求变量的值就会设置为用户选择的这个值。不过,只有在从用户按提示的开始按钮到分析结果返回到仪表盘这一段时间内,该值才有效。

注:

只有字符串和数字请求变量才支持多个值。所有其他数据类型只传递第一个值。

什么是全局变量?

全局变量是通过将特定数据类型与值结合创建的列。

值可以为字符串、数字、日期、时间、表达式、公式等。在使用编辑列公式对话框创建分析的过程中创建全局值。全局变量保存在目录中,可供特定租户系统中的所有其他分析使用。

可以在创建分析的过程中创建全局变量。

全局变量可以为以下类型:

  • 日期

  • 日期和时间

  • 数字

  • 文本

  • 时间

要创建全局变量,请执行以下操作:

  1. 标准选项卡上的“所选列”窗格中,单击要编辑其公式的列旁边的选项按钮,然后选择编辑公式。此时将显示“编辑列公式”对话框:“列公式”选项卡。可以使用此选项卡为全局变量创建定制标题。
  2. 单击变量按钮,然后选择全局。此时将显示“插入全局变量”对话框。
  3. 单击添加新的全局变量按钮。此时将显示新建全局变量对话框。
  4. 请输入唯一的名称。
  5. 选择数据类型。
  6. 输入一个值。

    注:

    如果选择“日期和时间”作为数据类型,则按照下例所示输入值:03/25/2004 12:00:00 AM

    如果要输入表达式或计算作为值,则必须使用文本数据类型,如下例中所示:"Base Facts"."1- Revenue"*3.1415

  7. 单击确定。新的全局变量将添加到插入全局变量对话框中。
  8. 选择刚刚创建的新全局变量,然后单击确定。此时将显示编辑列公式对话框,全局变量已插入到“列公式”窗格中。

    将自动选中定制标题复选框。为将全局变量分配到的列输入新名称以更准确地反映变量。

  9. 单击确定

在执行分析时会对全局变量求值,并相应替换其值。只有具有合适权限的用户才能管理 (添加、编辑和删除) 全局变量。