Я попытался найти, но не смог найти именно то, что искал. Я новичок в SQl Server и занимаюсь преобразованием SQL Server в Oracle, и это ручное преобразование. Все, что у меня есть, это файлы SQL Server.
Я вижу два типа триггеров SQL Server - ДЛЯ ОБНОВЛЕНИЯ и ДЛЯ ВСТАВКИ. Они выглядят мне как перед обновлением, так и перед триггерами вставки в Oracle. Я хотел бы подтвердить это, пожалуйста, и если вы можете привести примеры, которые были бы великолепны.
Кроме того, что эквивалентно master.dbo.sysprocesses в Oracle, пожалуйста? Это v $ сессия? Я могу получить пользователя от двойного в Oracle. Это то, что nt_username в коде ниже?
Вот типичные примеры кода, которые мне нужно преобразовать в Oracle - это перед вставкой?
CREATE TRIGGER trigger_name ON dbo.table_name
FOR Insert AS
declare @InsertUser varchar(32)
BEGIN
SELECT @InsertUser = nt_username from master.dbo.sysprocesses where spid = @@spid
Update table_name
SET dCreateDate = GETDATE(), cCreateUser = @InsertUser
FROM table1 a ,table2 i WHERE a.tab_id = i.tab_id
END
GO
Триггер обновления - до обновления?
CREATE TRIGGER trigger_name ON dbo.table_name
FOR UPDATE AS
declare @UpdateUser varchar(32)
if not update(CreateUser) and not update(CreateDate)
BEGIN
SELECT @UpdateUser = nt_username from master.dbo.sysprocesses where spid = @@spid
Update table_name
SET UpdateDate = GETDATE(), UpdateUser = @UpdateUser
FROM table1 a ,table2 i WHERE a.tab_id = i.tab_id
END
GO
Должен ли я объединить эти два параметра при вставке ... обновления elsif в Oracle?
Большое спасибо всем.