Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mC41t-0001kx-2v for pgsql-admin@arkaria.postgresql.org; Fri, 06 Aug 2021 17:53:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mC41q-0005vd-CZ for pgsql-admin@arkaria.postgresql.org; Fri, 06 Aug 2021 17:53:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mC41p-0005vJ-Qe for pgsql-admin@lists.postgresql.org; Fri, 06 Aug 2021 17:53:06 +0000 Received: from sonic311-24.consmr.mail.ne1.yahoo.com ([66.163.188.205]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mC41i-0006dF-D1 for pgsql-admin@lists.postgresql.org; Fri, 06 Aug 2021 17:53:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1628272376; bh=HVsX5/+wEolL1M9dVRPXB361xdmf5x5JGqbJs83S0Vg=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=pYl7Vp8WelADsgTDMDjjq20gGXMC7EK6GZ4z2W4RAGmQc5zeNDKbr2IXbewKqTurVDy6pwQnUf4qfkLRT1PzmJHEmwTb53CGLWq2zqpLzFN8AsJPhJwZefWKmt4NB1VNEUSiCeFOuUDsocYYtAhMeJfXhNbJCPcmiHxX7clQvMhO8UUOOXGAbZacdr6yMTkEvXJ6GGPSrKe9EXrLK2K3WE7VlP2NMgBK1fTVCohcYYaH7mDwrdK7k4qXF3Epkfd4JXC5jjn9y/TBDIbZkikw+yKcz3yJV/0FrTs6rIlirEONnMIyVyOrdEWWdfvqz+GsGW4CiQZY4EbayfzmL8lIuQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1628272376; bh=bjPJulcUzQ67eAmPcNRY/7Ycdt0YSVkrZFFVjSJ8+zq=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=K8yHcCGGoWTqzJq80TuVgB3+he9e4aa9IXMEJmP5bpyjvS6/0bMCuuPpMF+b5X+VkHWqRIYownyK352rQiqB+jKbEqOWKwPdDreaJ2hlQD6Z6WFyI4zlyn8ihqOb3i2xTmrUzfJbVqBLVcnIsaieDmPl0w7R/AopskFdrViKKLBXO+013ok6jFZWd8PqDdCFJjhvTZyAt16glLg1PIz1V+bIwufzb5V8F56uVxP6AtB6pyR2w9ZjyY11yPa0o1ozOLg1mVhtogCOueoQ179ZJZtazip6wgf28ha3e5QGVUqgwXYaS7P56efxvvn+yDDmbNd5eY1I2vNLCpn7P6997w== X-YMail-OSG: lukAdKEVM1kDhh_MZg27hOdJD9UBhlWdQKxLS9FxW_BfpfLRZaCIviEt8lTxN1s FEFm.lQcnPqMlvpS22HpYiVleTFaYdlmmfEmGf6Z_VgvA48sluFByi6XyV5.igh8pS3MbFt.wlHe JzWiclMgPmoZWVpmG9RJZOccSyYEpvOOur0Qy3Z8PqxB6oGXnZxdm4tkgBfcR6J.4NYzcVMUx4hj QZ8JJU_BPMzgOgWUkfpreU3YN5TyImjJp.3Q2qOcRUEhqWoXnu_t_pB_nGoDT8SUevPcghq.UsyC sEaif7avrqtihIJd.FSNLOWQMlHBnrB7sffou2cIn0WW6OUHxnBSO.zw6s1y3AWKeMBG3GSiE8vK 4.XWIJrUT.z1SQPZ7fF1uG86mIZfDwOjxGqDo3Rg3UwQowM4.3HBhk7xJoqPlx7tBEX.Y9iXTTG_ 0KNIFd_PXGleH1BYRnW77gtQhbZ53w7P8j_p_uzVKXdA.A4.VE6w.6hAR3rp._tEoPRv3d2jg4Ns fqpX0reankj1P1bi3htFvtY3k51Jff__5aVKV_1UbrCErqKD4cOlLifgwQdZ7FvmTx.hiFMaDhsZ pXStH.vQf4n8n84RCKmvNlY9LCyikOzGv5btR7kjwSwSsHy.2emS3SiUZi70uosbMAAPtDKcOKXp q5kFkB7S5JDzznyOl3bRzWa5vPqNAkA__vLq5G.ZYZfYszfl4EToR4iw7U_9BamoufM_r4R0lq.K XbkhdBBB4dYgPMB0bmbcxdBz.ugzYfan6Qw_E4C__OCrknu046rS0HEmFdHdTXVNh9qSr0pGMsAX rdPxhG6UgZHE1e_4S4Z45ioV_qBXo5xF0RHzRLgyCkP7hDrPLRMeSkaJ_a_ThGm6uc3w.rsCyOz_ LPAwquCt06wHJSzaZUcdBm0fZfscpq1i0Tp3F3JEMrL75Sm1OyV_mylXWH110qTRKTwymgBenRx3 fdxMsTFs66vLkghZjUp40d0LzUI7JqRMQY9csPwHgYQ63cJmRBnfWhFLpjywMc1_Q5jCWUFX0gki Ut1R8cWtlJX2JdcnVAjMt0t8u_RV_FpeubD24lax1Uhq8fdC9RuqdHXM2wBnHrrHCRf5JCXmlSNg vBXVMxztOuPm3z411k_e8o_KNOtyXWCioc9tfokqTVTyvjQpHRBlIgTi3iWX20i..GhIBgqZg3mA j_R28peGshbl29WdxdEllCwtrHqw9L9dJD4ZL.26_6FjZJCxNhQSO9iyTouAuaSZzKD1KZgfSsCm 8rTUcK2rMPwwlCW05sqAtZHbkMtriIY7otEvGGTFsJ3AUNqrWhAf_3oNosY2e9ctOQCeZXBv2u7i 5J5NUBSGgVGE1wN132q0mkFszEqkBMTZHSBarkX5ByfMInGM3Q1cGswH3yy9DV8nYGMsrASdpjsL p8QotZTwk6A0wvOHynSIoSFbxs4iRyxuIe0Sepsadx4oZF9PaiNtuwLJkjd9wWTuIcl.2sVH4nCF cv2iWv6kZSZk45H20iWJLcSV4.GCpCU16U5_l1KoQsVMpDH8ximiBEJgCwTmVwvnZ0rnwAtdZc.N gWYGUl0wvIqXSaR8un2Y2u0yWj7mmsXKIDp2cs1bT5LlTkPooNj3G30Vsu_bANKEide41jzulRxV mvmSDP_7FMMIGUPyPNXX1Yyzt4Py7u6MjezVc38oQ5L2IenTN72H4bq8.5QAAIrmsOTGY1eVAmuP 7rbea8ZPdQvMRDd2eser9hW4R595SfInzgIX.9aDMSk0pev3RZ9lMqoaR.BpW1jUHVeBYpdwziQr iGb_ECBeSiMLBDBtvRF2Knl390sbxYcUA8x0Mw_DleBYonCErxnUxmNa4Pc4SxbYEBpQsf_f1R_d eV.HCt3od886Gsu5ZXG_wVf_dlVhgKIXp61noJs.sRDTgsE8wCIfpfansCEEzuFv_bs2_NOx.CMo hkm4AMNqdxRUgEe49oyGXLeyuGA6SDIfZpmN8lyga9MIJwFBmXX3lupVAhDUiu10frLiXqXCY481 qTAZ5gzMnwZfejgRoHspca5VsHIlsee3UMUFpT3T_1jGKud6BI38NdePFKDqsC3xaxhwHgsTnc5i YCk0jImNdGf.T1FcE.ejMwoBBhHh2SI.t2qVJQ_pcge8.cCIz0tJeVaek6KsIvlaq1TiGf.gzzXf Yqly6Sg9AA69o.apI0mhxg4y4ZskCvUh4JYDK_8dQTHBPMwVMAQLd.HJ.HOtl1Ttvg5UJjl5FtDm nGAbDIorA.Az9tVTAgPqGVsG6Iv3FKjo9pWN62LYVFBp3bLBmwfA9xnnS7.F097dKFNcwdOUXrht nibsfKi.ESnJqc7Jt3IA.wiyMfqMZTrKXHICdRFFaGOJntVXNwBBF7auhgACKynGPbTsXAT_WIox 7GlAa19IJIqpISrznUMqNcVdxN3IWHP0ketPbtqOOrzysbDBYzeu_dz1ig2j8OaN3o_UpzLWAEX3 KJIUrM_q3fRITRENbs.5bllMUBddALTFggtwF4_oxCakou2kcaDWQ6nhVkNOxqasv4iwnY_NfFw2 0svP7QLHuZCSoC2FDrhYkdY7UPXa_HEhCumpbfoLl2TOu7U1i5xsn2DMVPqk49a3cfVGqUhrehzf MBo_nrNoQHtu3PPD4BYJHB6VkNZO2k7TiYePlQJ_WinPZDF9BO39NesfpgDs7fUxNLvtirR1Clmm QBJ3_h4hXH5DEfu.TthZ.hkWEmHcF3S7UHmCfTWfmag-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ne1.yahoo.com with HTTP; Fri, 6 Aug 2021 17:52:56 +0000 Date: Fri, 6 Aug 2021 17:52:54 +0000 (UTC) From: FAROOQ SIDDIQUI Reply-To: FAROOQ SIDDIQUI To: Gilles Darold , Mukesh Rajpurohit Cc: Pgsql-admin , FAROOQ AHMED SIDDIQUI Message-ID: <191228527.376180.1628272374223@mail.yahoo.com> In-Reply-To: References: <9e116fec-7756-5fd5-f537-a4fc771d7603@migops.com> Subject: Re: Oracle error log table equivalent in postgresql MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_376179_1556098272.1628272374223" X-Mailer: WebService/1.1.18796 YMailNorrin Content-Length: 16605 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_Part_376179_1556098272.1628272374223 Content-Type: multipart/alternative; boundary="----=_Part_376178_1829559275.1628272374193" ------=_Part_376178_1829559275.1628272374193 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Please find below code, looks like, relate to your issue: Refrence:=C2=A0https://stackoverflow.com/questions/53504234/pgsql-trigger-f= unction-write-exception-to-log-table Here's an example, using a normal function rather than a trigger, though it= 's really the same thing in as far as how to log: Table to store errors: CREATE TABLE errors (id SERIAL, sql_state TEXT, message TEXT, detail TEXT, = hint TEXT, context TEXT);Function which does work and has the exception han= dling/logging: CREATE OR REPLACE FUNCTION my_func()=C2=A0 =C2=A0 RETURNS VOID AS$BODY$DECL= ARE=C2=A0 =C2=A0 _sql_state TEXT;=C2=A0 =C2=A0 _message TEXT;=C2=A0 =C2=A0 = _detail TEXT;=C2=A0 =C2=A0 _hint TEXT;=C2=A0 =C2=A0 _context TEXT;BEGIN=C2= =A0 =C2=A0 PERFORM 1 / 0;EXCEPTION=C2=A0 =C2=A0 WHEN OTHERS THEN=C2=A0 =C2= =A0 =C2=A0 =C2=A0 GET STACKED DIAGNOSTICS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 _sql_state :=3D RETURNED_SQLSTATE,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 _message :=3D MESSAGE_TEXT,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 _detail :=3D PG_EXCEPTION_DETAIL,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 _hint :=3D PG_EXCEPTION_HINT,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 _context :=3D PG_EXCEPTION_CONTEXT; =C2=A0 =C2=A0 =C2=A0 =C2=A0 INSERT INTO errors (sql_state, message, detail,= hint, context)=C2=A0 =C2=A0 =C2=A0 =C2=A0 VALUES (_sql_state, _message, _d= etail, _hint, _context);END$BODY$=C2=A0 =C2=A0 LANGUAGE plpgsql; After calling the function, the errors table contains: enter image description here See https://rextester.com/BQPG27732 Context shows a call stack of sorts. You could add more error-related field= s of course, I only chose a handful of those available in GET STACKED DIAGN= OSTICS =20 ------=_Part_376178_1829559275.1628272374193 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Please find below code, looks like, relat= e to your issue:

Refrence: = https:= //stackoverflow.com/questions/53504234/pgsql-trigger-function-write-excepti= on-to-log-table
Here's an example, usi= ng a normal function rather than a trigger, though it's really the same thi= ng in as far as how to log:

Table to store errors:=

CREATE TABLE errors (id SERIAL, sql_state TEXT, m= essage TEXT, detail TEXT, hint TEXT, context TEXT);
Function whic= h does work and has the exception handling/logging:

CREATE OR REPLACE FUNCTION my_func()
    RETURNS VOID= AS
$BODY$
DECLARE
    _sql_state T= EXT;
    _message TEXT;
    _detail= TEXT;
    _hint TEXT;
    _context= TEXT;
BEGIN
    PERFORM 1 / 0;
EXC= EPTION
    WHEN OTHERS THEN
    &nb= sp;   GET STACKED DIAGNOSTICS
        &n= bsp;   _sql_state :=3D RETURNED_SQLSTATE,
    &nbs= p;       _message :=3D MESSAGE_TEXT,
   =         _detail :=3D PG_EXCEPTION_DETAIL,
&n= bsp;           _hint :=3D PG_EXCEPTION_HINT,
=
            _context :=3D PG_EXCEPTION_C= ONTEXT;

        INSERT INTO er= rors (sql_state, message, detail, hint, context)
    &n= bsp;   VALUES (_sql_state, _message, _detail, _hint, _context);
<= div>END
$BODY$
    LANGUAGE plpgsql;

After calling the function, the errors table contains:

3D"Inline">


enter image d= escription here

See https://rextester.com/BQPG2773= 2

Context shows a call stack of sorts. You could a= dd more error-related fields of course, I only chose a handful of those ava= ilable in GET STACKED DIAGNOSTICS

<= /div>
------=_Part_376178_1829559275.1628272374193-- ------=_Part_376179_1556098272.1628272374223 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="1628272351388blob.jpg" Content-ID: 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 ------=_Part_376179_1556098272.1628272374223--