Конвертировать триггер SQL Server в Oracle и master.dbo.sysprocesses - не дублировать - PullRequest
0 голосов
/ 27 июня 2018

Я попытался найти, но не смог найти именно то, что искал. Я новичок в 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? Большое спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...