ora2pg icon indicating copy to clipboard operation
ora2pg copied to clipboard

OUT parameters are not converted in EXECUTE command

Open okbob opened this issue 10 months ago • 4 comments

I got error report related to usage OUT parameters inside EXECUTE statement.

   mLIDENT, mID_VALUE, mID_CISFOTO, mORIGINAL, mCESTAK, mVELIKOST, mNAZEV, clock_timestamp(), mID_ASPRAVCE, mID_APROVOZNA, mID_SKUP_CISEL, 'N', 'W', 'A', mVYBOR,  out mID_OBPDOCUM;

This should be converted to EXECUTE USING INTO

okbob avatar Jan 17 '25 06:01 okbob

Hi Pavel, can you provide a full code example please?

darold avatar Jan 17 '25 14:01 darold

I have only fragments:

Oracle:

 pINS := 'INSERT INTO OBPDOCUM (LIDENT, ' || mID_NAME || ', ID_CISFOTO, NAZEV_OBPDOCUM, CESTAK, VELIKOST_DOCUM, POZNAMKA, PLATNOST_OD'
  || ', ID_ASPRAVCE, ID_APROVOZNA, ID_SKUP_CISEL, DRUHAK, CVZNIKRADK, VIDI_NAJEMNIK, VYBOR ) VALUES ('
  || ':LIDENT, :ID_VALUE, :ID_CISFOTO, :ORIGINAL, :CESTAK, :VELIKOST, :NAZEV, :PLATNOST_OD'
  || ', :ID_ASPRAVCE, :ID_APROVOZNA, :ID_SKUP_CISEL, :DRUHAK, :CVZNIKRADK, :VIDI_NAJEMNIK, :VYBOR) returning ID_OBPDOCUM into :ID_OBPDOCUM';

  EXECUTE pINS USING
    mLIDENT, mID_VALUE, mID_CISFOTO, mORIGINAL, mCESTAK, mVELIKOST, mNAZEV, clock_timestamp(), mID_ASPRAVCE, mID_APROVOZNA, mID_SKUP_CISEL, 'N', 'W', 'A', mVYBOR,  out mID_OBPDOCUM;

Translated to Postgres:

  pINS := 'INSERT INTO OBPDOCUM (LIDENT, ' || mID_NAME || ', ID_CISFOTO, NAZEV_OBPDOCUM, CESTAK, VELIKOST_DOCUM, POZNAMKA, PLATNOST_OD'
  || ', ID_ASPRAVCE, ID_APROVOZNA, ID_SKUP_CISEL, DRUHAK, CVZNIKRADK, VIDI_NAJEMNIK, VYBOR ) VALUES ('
  || ':LIDENT, :ID_VALUE, :ID_CISFOTO, :ORIGINAL, :CESTAK, :VELIKOST, :NAZEV, :PLATNOST_OD'
  || ', :ID_ASPRAVCE, :ID_APROVOZNA, :ID_SKUP_CISEL, :DRUHAK, :CVZNIKRADK, :VIDI_NAJEMNIK, :VYBOR) returning ID_OBPDOCUM into :ID_OBPDOCUM';

  EXECUTE pINS USING
    mLIDENT, mID_VALUE, mID_CISFOTO, mORIGINAL, mCESTAK, mVELIKOST, mNAZEV, clock_timestamp(), mID_ASPRAVCE, mID_APROVOZNA, mID_SKUP_CISEL, 'N', 'W', 'A', mVYBOR, out mID_OBPDOCUM;

But there is error 42703:15:EXECUTE:column "out" does not exist

okbob avatar Jan 17 '25 14:01 okbob

ok, I have never met this syntax so conversion it is not implemented. I will try to do something.

darold avatar Jan 17 '25 14:01 darold

pá 17. 1. 2025 v 15:47 odesílatel Gilles Darold @.***> napsal:

ok, I have never met this syntax so conversion it is not implemented. I will try to do something.

I was very surprised too, but Oracle supports it

— Reply to this email directly, view it on GitHub https://github.com/darold/ora2pg/issues/1855#issuecomment-2598526334, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEFO446O4V5AKHWPXTT5ZT2LEJXPAVCNFSM6AAAAABVLIAOQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKOJYGUZDMMZTGQ . You are receiving this because you authored the thread.Message ID: @.***>

okbob avatar Jan 17 '25 15:01 okbob