У меня есть SQL заявление о Netezza, которая использует следующий SQL, чтобы получить в настоящее время вошли в системе user ID
:Есть ли способ вернуть вошедшие в ID из Netezza в SQL в целях, в current_sid
SELECT SESSION_USERNAME FROM _V_SESSION_DETAIL WHERE SESSION_ID=current_sid
Этого отлично работает, когда я выполняю SQL в клиенте базы данных. Однако, когда я реализую вышеуказанный SQL в представлении (наряду с другим SQL), current_sid
заменяется session ID
, который у меня возник, когда я создал представление. Это SQL будет выглядеть примерно так:
SELECT DEFINITION_SCHEMA."_V_SESSION_DETAIL".SESSION_USERNAME FROM DEFINITION_SCHEMA."_V_SESSION_DETAIL" WHERE (DEFINITION_SCHEMA."_V_SESSION_DETAIL".SESSION_ID = 2434740
Есть ли способ, чтобы определить представление, которое получит вошедшее на user's ID
, а не идентификатор, который был назначен, когда был создан вид?
Не могли бы вы поделиться определение представления, что вы хотите создать – NzGuy
я уменьшил взгляд немного, но вот это: – BrianB
CREATE OR REPLACE VIEW ADMIN.VW_PI_HRCHY_EPH КАК С SECURITY_GRP_CNT (COUNT) AS (SELECT COUNT (*) ОТ _V_USERGROUPS где имя_пользователя В (ВЫБРАТЬ SESSION_USERNAME ОТ _V_SESSION_DETAIL ГДЕ SESSION_ID = current_sid) И GROUPNAME = 'GROUP_AUTH2READ'), CHAR_MASK (CHAR_MASK_CHAR) AS (SELECT 'XXX' FROM _V_SESSION_DETAIL LIMIT 1), NUM_MASK (NUM_MASK_NUM) AS (SELECT -1 FROM _V_SESSION_DETAIL LIMIT 1), – BrianB