Functions and triggers can anyone help

Поиск
Список
Период
Сортировка
От RobertD.Stewart@mail.state.ky.us
Тема Functions and triggers can anyone help
Дата
Msg-id 098C0DC713F9D311B2FB00508B95327605971738@agency2.state.ky.us
обсуждение исходный текст
Ответы Re: Functions and triggers can anyone help  ("Nigel J. Andrews" <nandrews@investsystems.co.uk>)
Re: Functions and triggers can anyone help  (Joe Conway <mail@joeconway.com>)
Список pgsql-general

I'm having a problem with setting up a function and a trigger for one of me tables.  I have just started using Postgresql and I'm trying to convert my Oracle database over to see how it runs.

Here is my Oracle Functions

 

Create Or Replace FUNCTION SET_USERNAME

  ( eventtype IN varchar2,

    message IN varchar2)

  RETURN  varchar2 IS

username varchar2(30);

pos1  number(7);

pos2 number(7); 

BEGIN

    if eventtype = 'AUDIT_SUCCESS' then

      pos1 := instr(message, 'User Name:') + 10;

      pos2 := instr(message, 'Domain');

      return substr(message, pos1, pos2-pos1);  

    elsif eventtype = 'AUDIT_FAILURE' then

      pos1 := instr(message, 'User Name:') + 10;

      pos2 := instr(message, 'Domain:');

      if (pos1 = 0 or pos2 = 0) then

        pos1 := instr(message, 'Account Name:') + 13;

        pos2 := instr(message, 'Target Domain:');

      end if; 

 

      return substr(message, pos1, pos2-pos1);  

    end if;       

    return '' ;

EXCEPTION

   WHEN others THEN

       return '' ;

END;

 

And Here is my Postgresql function but when I try to set the trigger it says it can't find the function (it does not exist)

 

CREATE  FUNCTION set_username4(varchar, varchar) RETURNS opaque AS '

DECLARE

eventtype varchar;

message varchar;

username varchar(30);

pos1  number(7);

pos2 number(7); 

BEGIN

    if eventtype = ''AUDIT_SUCCESS'' then

      pos1 := instr(message, ''User Name:'') + 10;

      pos2 := instr(message, ''Domain'');

      return substr(message, pos1, pos2-pos1);  

    elsif eventtype = ''AUDIT_FAILURE'' then

      pos1 := instr(message, ''User Name:'') + 10;

      pos2 := instr(message, ''Domain:'');

      if (pos1 = 0 or pos2 = 0) then

        pos1 := instr(message, ''Account Name:'') + 13;

        pos2 := instr(message, ''Target Domain:'');

      end if; 

  

      return substr(message, pos1, pos2-pos1);  

    end if;       

    return '' ;

EXCEPTION

   WHEN others THEN

       return '' ;

END;

LANGUAGE 'plpgsql';

 

 

Robert Stewart

Division of Communications

Office of Infrastructure Services

Governors Office for Technology

Commonwealth of Kentucky

work: 502 564 4287

cell: 502 330 5991

pager 877 543 0473

 

 

В списке pgsql-general по дате отправления:

Предыдущее
От: roverr
Дата:
Сообщение: Question: unique on multiple columns
Следующее
От: Arjen van der Meijden
Дата:
Сообщение: Re: Question: unique on multiple columns