psqlODBC driver does not support escape sequence for calling SQL procedures '{call procedure-name[([parameter][,[parameter]]...)]}'

From: "J(dot)Bartkowiak (Inetia)" <jaroslaw(dot)bartkowiak(at)inetia(dot)pl>
To: pgsql-odbc(at)postgresql(dot)org
Subject: psqlODBC driver does not support escape sequence for calling SQL procedures '{call procedure-name[([parameter][,[parameter]]...)]}'
Date: 2019-10-14 13:16:22
Message-ID: 87af3cef-a879-deb8-172d-d0c6cb3e9377@inetia.pl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

ODBC Driver version: 12.00
PostgreSQLdatabase version: PostgreSQL 12.0
Operating system: Windows 10 Pro

SQL-level procedures (new in PostgreSQL 11) are not supported by ODBC call
sequence '{call procedure-name[([parameter][,[parameter]]...)]}'.

Example:

Definition of SQL my_proc() procedure:

CREATE OR REPLACE PROCEDURE my_proc()
AS $$
BEGIN
raise notice 'Hello from my_proc() procedure.';
END;
$$ LANGUAGE plpgsql;

Call to procedure my_test():

SQLExecDirect(hstmt, "{call my_test()}", SQL_NTS);

returns error 'my_test() is a procedure;'.

The problem is that psqlODBC driver is treating procedures like functions and
translates '{call ...}' to 'SELECT * FROM ...', which is wrong for procedures.
They must be executed using 'CALL' keyword.

Regards,
Jarek Bartkowiak

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Frederic Brauge 2019-10-14 14:29:19 pgsql 12.0
Previous Message Tobias Wendorff 2019-10-11 14:47:07 Re: psqlODBC 12.00.0000 Released