create or replace package UDO_PKG_P8PANELS_USETTINGS as /* */ procedure SETTINGS_SET ( SPANEL in varchar2, -- CSETTINGS in clob -- ); /* */ procedure SETTINGS_GET ( SPANEL in varchar2, -- COUT out clob -- ); end UDO_PKG_P8PANELS_USETTINGS; / create or replace package body UDO_PKG_P8PANELS_USETTINGS as /* - */ XRQ_SETTINGS constant PKG_STD.TSTRING := 'XSETTINGS'; -- /* */ procedure P8PANELS_USETTING_INSERT ( NCOMPANY in number, -- . SAUTHID in varchar2, -- SPANEL in varchar2, -- CPANEL_SETTINGS in clob, -- NRN out number -- . ) is begin /* */ NRN := GEN_IDENT(); /* */ insert into UDO_P8PANELS_USETTING (RN, COMPANY, authid, PANEL, PANEL_SETTINGS) values (NRN, NCOMPANY, SAUTHID, SPANEL, CPANEL_SETTINGS); end P8PANELS_USETTING_INSERT; /* */ procedure P8PANELS_USETTING_UPDATE ( NRN in number, -- . NCOMPANY in number, -- . SAUTHID in varchar2, -- SPANEL in varchar2, -- CPANEL_SETTINGS in clob -- ) is begin /* */ update UDO_P8PANELS_USETTING T set T.AUTHID = SAUTHID, T.PANEL = SPANEL, T.PANEL_SETTINGS = CPANEL_SETTINGS where T.RN = NRN and T.COMPANY = NCOMPANY; if (sql%notfound) then P_EXCEPTION(0, ' . "%s" .', TO_CHAR(NRN)); end if; end P8PANELS_USETTING_UPDATE; /* */ procedure P8PANELS_USETTING_DELETE ( NRN in number, -- . NCOMPANY in number -- . ) is begin /* */ delete from UDO_P8PANELS_USETTING where RN = NRN and COMPANY = NCOMPANY; if (sql%notfound) then P_EXCEPTION(0, ' . "%s" .', TO_CHAR(NRN)); end if; end P8PANELS_USETTING_DELETE; /* */ function P8PANELS_USETTING_GET ( NFLAG_SMART in number, -- NRN in number, -- . NCOMPANY in number -- . ) return UDO_P8PANELS_USETTING%rowtype -- is RRESULT UDO_P8PANELS_USETTING%rowtype; -- begin /* */ begin select T.* into RRESULT from UDO_P8PANELS_USETTING T where T.RN = NRN and T.COMPANY = NCOMPANY; exception when NO_DATA_FOUND then P_EXCEPTION(NFLAG_SMART, ' . "%s".'); end; /* */ return RRESULT; end P8PANELS_USETTING_GET; /* . */ procedure P8PANELS_USETTING_FIND ( NFLAG_SMART in number, -- (0 - , 1 - ) NCOMPANY in number, -- . SAUTHID in varchar2, -- SPANEL in varchar2, -- NRN out number -- . ) is begin /* */ if (RTRIM(SPANEL) is null) then /* */ P_EXCEPTION(NFLAG_SMART, ' .'); /* */ return; end if; /* */ if (RTRIM(SAUTHID) is null) then /* */ P_EXCEPTION(NFLAG_SMART, ' .'); /* */ return; end if; /* */ begin select T.RN into NRN from UDO_P8PANELS_USETTING T where T.PANEL = SPANEL and T.AUTHID = SAUTHID and T.COMPANY = NCOMPANY; exception when NO_DATA_FOUND then P_EXCEPTION(NFLAG_SMART, ' "%s" .', SPANEL); end; end P8PANELS_USETTING_FIND; /* */ procedure SETTINGS_SET ( SPANEL in varchar2, -- CSETTINGS in clob -- ) is NUDO_P8PANELS_USETTING PKG_STD.TREF; -- . NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- SAUTHID PKG_STD.TSTRING := UTILIZER(); -- CDATA clob; -- begin /* */ if (RTRIM(SPANEL) is null) then P_EXCEPTION(0, ' .'); end if; /* */ CDATA := '<' || XRQ_SETTINGS || '>' || BLOB2CLOB(LBDATA => BASE64_DECODE(LCSRCE => CSETTINGS), SCHARSET => PKG_CHARSET.CHARSET_UTF_()) || ''; /* */ P8PANELS_USETTING_FIND(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, SAUTHID => SAUTHID, SPANEL => SPANEL, NRN => NUDO_P8PANELS_USETTING); /* */ if (NUDO_P8PANELS_USETTING is not null) then /* */ P8PANELS_USETTING_UPDATE(NRN => NUDO_P8PANELS_USETTING, NCOMPANY => NCOMPANY, SAUTHID => SAUTHID, SPANEL => SPANEL, CPANEL_SETTINGS => CDATA); else /* */ P8PANELS_USETTING_INSERT(NCOMPANY => NCOMPANY, SAUTHID => SAUTHID, SPANEL => SPANEL, CPANEL_SETTINGS => CDATA, NRN => NUDO_P8PANELS_USETTING); end if; end SETTINGS_SET; /* */ procedure SETTINGS_GET ( SPANEL in varchar2, -- COUT out clob -- ) is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- SAUTHID PKG_STD.TSTRING := UTILIZER(); -- NUDO_P8PANELS_USETTING PKG_STD.TREF; -- . RUDO_P8PANELS_USETTING UDO_P8PANELS_USETTING%rowtype; -- begin /* */ P8PANELS_USETTING_FIND(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, SAUTHID => SAUTHID, SPANEL => SPANEL, NRN => NUDO_P8PANELS_USETTING); /* */ if (NUDO_P8PANELS_USETTING is not null) then /* */ RUDO_P8PANELS_USETTING := P8PANELS_USETTING_GET(NFLAG_SMART => 1, NRN => NUDO_P8PANELS_USETTING, NCOMPANY => NCOMPANY); /* */ COUT := RUDO_P8PANELS_USETTING.PANEL_SETTINGS; else /* */ COUT := ''; end if; end SETTINGS_GET; end UDO_PKG_P8PANELS_USETTINGS; /