On 12/18/18 12:02 AM, Alban Hertroys wrote:
>
>> On 18 Dec 2018, at 7:10, Igor Korot <ikorot01@gmail.com> wrote:
>>
>> Hi, ALL,
>> I have a following statement:
>>
>> IF NOT EXIST( SELECT 1 SELECT 1 FROM pg_proc AS proc, pg_namespace AS
>> ns ) CREATE FUNCTION();
>>
>> Unfortunately trying to execute it thru the ODBC interface with:
>>
>> ret = SQLExecDirect( m_hstmt, query, SQL_NTS );
>>
>> gives syntax error near IF.
>>
>> What is the proper way to do that?
>
> It looks like you’re trying to create a function unless it already exists, but you’re missing several important
parts.
>
> Firstly, the statement you’re looking for is CREATE OR REPLACE FUNCTION. Look it up in the docs for the various
syntaxoptions and for how to use it, as…
>
> Secondly, your function doesn’t have a name. A function requires a name, or you wouldn’t ever be able to call it.
With an exception:
https://www.postgresql.org/docs/10/sql-do.html
> You will also have to specify a return type (functions return values) and the language the function is implemented
in.The documentation will show you that there are several options you can provide too.
>
> And lastly, a function requires an implementation.
>
> Regards,
>
> Alban Hertroys
> --
> There is always an exception to always.
>
>
--
Adrian Klaver
adrian.klaver@aklaver.com