On Mon, Jul 15, 2019 at 6:40 AM jeanclaude marzin <jeanclaude.mar...@sfr.fr>
wrote:

> ‌Hi
> I migrate from MSSQL to postgresql 11. I translate MSSQL stored procedure
> to Postgresql one :
>
> CREATE PROCEDURE procacp ()
> LANGUAGE SQL
> AS $$
> SELECT tabjdbexploit.jdbeid, tabjdbexploit.jdbeproc,
>     tabjdbexploit.jdbedate, tabjdbexploit.jdbetypemsg,
>     tabjdbexploit.jdbeurg, tabjdbexploit.jdbeconfid,
>     tabjdbexploit.jdbeetat, tabmsgacp.acpid,
>     tabmsgacp.acpnumserie,
>     tabmsgacp.acpsignserv, tabmsgacp.acpnumligne,
>     tabmsgacp.acpiaorigine, tabmsgacp.acpgdh,
>     tabmsgacp.acperv,  tabmsgacp.acpcdu,
>     tabmsgacp.acpdir, tabmsgacp.acppere,
>     tabmsgacp.acpcomplement, tabmsgacp.acpsection
>
> FROM tabjdbexploit INNER JOIN
>     tabmsgacp ON tabjdbexploit.jdbeid = tabmsgacp.acpid
>
> ORDER BY tabjdbexploit.jdbedate ASC
> $$;
>
>
> All seems OK in PgAdmin 4, procedure is created
>
> I use ODBC and Crecorset in C++
>
> When i use the call strSQL = "{CALL procacp()}". It don't work :
>
> Message error : ERROR: procacp() is a procedure
>
> I don't know what to do
>
> Thanks in advance for any assistance
>
> Jean-Claude


I am fairly sure that you need to make an FUNCTION and not a PROCEDURE.
Functions return values. Procedures do not. Why not try replacing the word
PROCEDURE with FUNCTION and give it another try?

ref: https://www.postgresql.org/docs/11/xfunc.html


-- 
We all agree on the necessity of compromise. We just can't agree on when
it's necessary to compromise. -- Larry Wall

Maranatha! <><
John McKown

Reply via email to