Это, наверное, что-то глупое, что я уже смотрю.Создайте временную таблицу в триггере PL-SQL
У меня этот код в триггере. Полный триггер здесь: (Там больше кода выше этого кода) http://pastebin.com/KcBZdEmt
CREATE TABLE ApprList AS
SELECT
U.*
FROM pmm$PmmReleaseRequest R
INNER JOIN dbo$ManagedEntity ME
ON ME.ManagedEntityID = R.ManagedSystemID
INNER JOIN dbo$SmartRuleAssetCache SRC
ON SRC.AssetID = ME.AssetID
INNER JOIN dbo$UserGroup_SmartRule_Role GSR
ON GSR.SmartRuleId = SRC.SmartRuleId
AND GSR.RoleId IN (2,3)
INNER JOIN dbo$AppUser_UserGroup UG
ON UG.GroupID = GSR.UserGroupId
AND UG.UserID <> R.UserID
INNER JOIN dbo$AppUser U ON UG.UserID = U.UserID
WHERE R.ReleaseRequestID = ReleaseRequestID
AND U.UserID <> RequestorUserID;
На феллинг линии:
CREATE TABLE ApprList AS
я получаю:
Error(111,1): PLS-00103: Encountered the symbol "CREATE" when expecting one of the following: (begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
Это, вероятно, лучше, чтобы взять пик в файле pastebin.
Заранее спасибо.
Вы не можете создать таблицу внутри триггера без динамического SQL. Вам нужно «ВЫПОЛНИТЬ НЕМЕДЛЕННОЕ» CREATE .... » – Tatiana
Вы даже не можете делать это динамически внутри триггера, потому что это неявно совершает, что запрещено. В вашем названии также указывается, что вы создаете временную таблицу, но ваш код предназначен для постоянной таблицы. Oracle не имеет локальных временных таблиц; вам нужна глобальная временная таблица, как показывает Кевинский. –
Зачем вам это делать? –