powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Регистр SESSION_USER в ХП или триггерах
9 сообщений из 9, страница 1 из 1
Регистр SESSION_USER в ХП или триггерах
    #37094996
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

DB2 8.2

Есть предвставочный триггер (before insert), в котором одно из полей таблицы я инициализирую значением логина пользователя текущей сессии:
Код: plaintext
n.CRTEUSER=SUBSTR(SESSION_USER,  1 ,  20 )

Но значение логина всегда сохраняется в верхнем регистре. Это я что-то делаю не так или SESSION_USER всегда хранит логин в верхнем регистре? Как получить реальный логин?

С уважением, Семен Попов
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095247
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Всегда хранит в верхнем регистре.
Зачем вам "реальный логин"?
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095506
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinЗачем вам "реальный логин"?
У меня есть приложение, которое хранит в таблице различные сведения по пользователю (таблица пользователей приложения). Логин пользователя уникален в этой таблице. В некоторых рабочих таблицах мне нужно сохранять текущего пользователя. Для чего использую поле логина, которое инициализирую в триггере before значением SESSION_USER. Потом в необходимых ситуациях лезу в таблицу пользователей, чтобы доставать сведения о пользователе. Да вот беда. Функционал ввода в таблицу пользователей приложения реализован так, что сохраняю логин без преобразования регистра. Т.е. так, как пользователь его вводит при авторизации, например JPAdm, JPUser, DB2Test, а в рабочих таблицах они сохраняются как JPADM, JPUSER, DB2TEST. Ну а отсюда и все проблемы. Этот момент я не предусмотрел. Решить проблему не сложно - в таблице пользователей логин преобразовывать в верхний регистр при добавлении и изменении и т.п. Хотя, есть вопрос. А как поведет себя система под Linux? Насколько я знаю, там логин зависим от регистра.

Если можно, я задам вопрос не по текущей теме:
Какое значение типа DATE является минимальным(максимальным) в DB2? Хочу в ХП проинициализировать переменную типа DATE самой минимальной(максимальной) датой. Это можно сделать?
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095539
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ничего не преобразовывать, а сделать преобразование в самом запросе, как-то так:

Код: plaintext
1.
2.
3.
select ???
from datas d
join users u ON ucase(u.name)=d.username
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095614
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov...
Решить проблему не сложно - в таблице пользователей логин преобразовывать в верхний регистр при добавлении и изменении и т.п. Хотя, есть вопрос. А как поведет себя система под Linux? Насколько я знаю, там логин зависим от регистра. General naming rules
Имя пользователя вы можете вводить на любом регистре на любой платформе.
В unix-системе имя пользователя должно быть заведено в нижнем регистре.
Semen PopovЕсли можно, я задам вопрос не по текущей теме:
Какое значение типа DATE является минимальным(максимальным) в DB2? Хочу в ХП проинициализировать переменную типа DATE самой минимальной(максимальной) датой. Это можно сделать?date('0001-01-01')
date('9999-12-31')
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095696
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64Можно ничего не преобразовывать, а сделать преобразование в самом запросе, как-то так:

Код: plaintext
1.
2.
3.
select ???
from datas d
join users u ON ucase(u.name)=d.username

Спасибо. Это первое, что мне пришло на ум. Но хотелось бы не вносить разброд в БД, когда в одной таблице логин в нижнем регистре, а в другой в верхнем или вообще с заглавной. Хочется использовать одно правило.
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095697
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein General naming rules
Имя пользователя вы можете вводить на любом регистре на любой платформе.
В unix-системе имя пользователя должно быть заведено в нижнем регистре.

Так вот, возвращаюсь к правилу. Делаю вывод, что логины лучше хранить в нижнем регистре. Тогда и для Win и для Linux будет подходить. Я правильно думаю?

Mark BarinsteinSemen PopovЕсли можно, я задам вопрос не по текущей теме:
Какое значение типа DATE является минимальным(максимальным) в DB2? Хочу в ХП проинициализировать переменную типа DATE самой минимальной(максимальной) датой. Это можно сделать?date('0001-01-01')
date('9999-12-31')Спасибо
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095738
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen PopovMark Barinstein General naming rules
Имя пользователя вы можете вводить на любом регистре на любой платформе.
В unix-системе имя пользователя должно быть заведено в нижнем регистре.

Так вот, возвращаюсь к правилу. Делаю вывод, что логины лучше хранить в нижнем регистре. Тогда и для Win и для Linux будет подходить. Я правильно думаю?Я бы хранил в верхнем регистре:
Если я правильно понял, у вас что пользователь ввёл при connect, то и сохранилось.
Пользователь может ввести имя на любом регистре.
DB2 присваивает регистровым переменным имя пользователя в верхнем регистре после успешного соединения, поэтому то же самое лучше делать и вам.
В этом случае вам не надо будет преобразовывать свои поля для сравнения с регистровыми переменными DB2.
...
Рейтинг: 0 / 0
Регистр SESSION_USER в ХП или триггерах
    #37095920
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinЯ бы хранил в верхнем регистре:
Если я правильно понял, у вас что пользователь ввёл при connect, то и сохранилось.
Пользователь может ввести имя на любом регистре.
DB2 присваивает регистровым переменным имя пользователя в верхнем регистре после успешного соединения, поэтому то же самое лучше делать и вам.
В этом случае вам не надо будет преобразовывать свои поля для сравнения с регистровыми переменными DB2.Во! Верно. Я не с того места танцую. Поднял тему насчет операционок, а надо исходить из внутренней кухни DB2. Спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Регистр SESSION_USER в ХП или триггерах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]