Хранить пользователей в БД — это не просто привычка, а часть архитектуры. Централизованный учет помогает: Покажу, как грамотно реализовать это на Oracle SQL с проверкой, обработкой ошибок и аудитом. CREATE TABLE users ( USERID NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, LOGIN VARCHAR2(100) NOT NULL UNIQUE, CREATED_AT DATE DEFAULT SYSDATE, CONSTRAINT login_min_length CHECK (LENGTH(login) >= 3) ); CREATE OR REPLACE FUNCTION f_get_user_id(p_login IN VARCHAR2)
RETURN NUMBER IS
v_user_id NUMBER;
e_user_not_found EXCEPTION;
PRAGMA EXCEPTION_INIT(e_user_not_found, -20001); BEGIN
-- Проверка на NULL
IF p_login IS NULL THEN
RAISE_APPLICATION_ERROR(-20002, 'Логин не может быть NULL');
END IF;
-- Проверка на минимальную длину
IF LENGTH(p_login) < 3 THEN
RAISE_APPLICATION_ERROR(-20003, 'Логин должен содержать минимум 3 символа');
END IF;
-- Поиск пользователя
BEGIN
SELECT userid INTO v_user_id FROM users WHERE login = p_login;
RETURN v_user_id;
EXCEPTION
W