Создадим в схеме, в которую входим с физического уровня, такую таблицу:
USERID NAME VALUE
---------- ---------- ---------------
weblogic level 11
weblogic status FULL-TIME
Tom Kyte status PART-TIME
Tom Kyte level 9
Tom Kyte flow cache
Более подробно распишем запрос, который может динамически создавать переменные уровня сессии. Используем системную сессионную переменную USER.
SELECT NAME, VALUE
FROM RW_SESSION_VARS
WHERE USERID='VALUEOF(NQ_SESSION.USER)'
Заметим, что новых переменных мы не создаем, но ставим галочку Row-wise initialization (не забываем сбросить галочку Use caching).
Создаем дашбоард с единственным текстовым полем для просмотра созданных переменных.
[b]@{biServer.variables['NQ_SESSION.USER']}[br/]
@{biServer.variables['NQ_SESSION.level']}[br/]
@{biServer.variables['NQ_SESSION.status']}[br/]
@{biServer.variables['NQ_SESSION.flow']}[/b]
Замечаем, что у пользователя weblogic создались и инициализировались две переменные.
[b]@{biServer.variables['NQ_SESSION.USER']}=>weblogic[br/]
@{biServer.variables['NQ_SESSION.level']}=>11[br/]
@{biServer.variables['NQ_SESSION.status']}=>FULL-TIME[br/]
@{biServer.variables['NQ_SESSION.flow']}=>не создалась[/b]
Замечаем, что у пользователя Tom Kyte создались и инициализировались три переменные.
[b]@{biServer.variables['NQ_SESSION.USER']}=>Tom Kyte[br/]
@{biServer.variables['NQ_SESSION.level']}=>9[br/]
@{biServer.variables['NQ_SESSION.status']}=>PART-TIME[br/]
@{biServer.variables['NQ_SESSION.flow']}=>cache[/b]
Вопрос о том, как сделать столько сессионных переменных, сколько необходимо программисту, мы получили от слушателя курса по построению репозитария Oracle BI 12c нашего Учебного центра.
Ответ на вопрос может быть полезен при создании набора сессионных переменных для обеспечения работы объектов заданного авторизованного пользователя.
P.S. Так как до полного туториала не хватает одной таблички из документации,
помещаем ее под кат.
Type |
Syntax |
Example |
|
Session |
@{biServer.variables['NQ_SESSION.variablename']} |
@{biServer.variables['NQ_SESSION.USER']} |
|
where variablename is |
|||
For |
|||
Repository |
@{biServer.variables.variablename} |
@{biServer.variables.prime_begin} |
|
or |
or |
||
@{biServer.variables['variablename']} |
@{biServer.variables['prime_begin']} |
||
where variablename is |
|
||
Presentation |
@{variables.variablename}[format]{defaultvalue} |
@{variables.MyFavoriteRegion}{EASTERN |
|
or |
or |
||
@{scope.variables['variablename']} |
@{MyFavoriteRegion} |
||
where: |
or |
||
■variablename is |
@{dashboard.variables['MyFavoriteRegion']} |
||
■(optional) format is |
or |
||
■(optional) defaultvalue is |
(@{myNumVar}[#,##0]{1000}) |
||
■scope identifies |
or |
||
Note: When |
(@{variables.MyOwnTimestamp}[YY-MM-DD |
||
|
or |
||
|
(@{myTextVar}{A, |
||
Global |
@{global.variables.variablename} |
@{global.variables.gv_date_n_time} |