ALTER TABLE TBPARAMETRO
ALTER COLUMN OBSERVACAO TYPE VARCHAR(1500);

ALTER TABLE TBCONTROLE_U
ALTER COLUMN COMENTARIO TYPE VARCHAR(1500);

SET TERM ^ ;

CREATE OR ALTER trigger ttbparametro_b0iud for tbparametro
active before insert or update or delete position 0
AS
declare variable TABELA VARCHAR(50);
declare variable sql BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET UTF8;
begin
    
    TABELA =
        CASE IIF(DELETING,OLD.TABELA,NEW.TABELA)
            WHEN 'SISTEMA'    THEN 'TBCONTROLE_N'
            WHEN 'TBOPERADOR' THEN 'TBCONTROLE_O'
            WHEN 'TBUSUARIO'  THEN 'TBCONTROLE_U' 
            WHEN 'TBMODELO'   THEN 'TBCONTROLE_M'
        END;

    IF ( TABELA IS NOT NULL AND COALESCE(FN_GET_CONTEXT_TEMPORARY('ALTER_TBPARAMETRO'),0) <>  2 ) THEN
    BEGIN
        FN_SET_CONTEXT('ALTER_TBPARAMETRO',1);

        IF ( DELETING ) THEN
        BEGIN
            EXECUTE STATEMENT 'DELETE FROM ' || TABELA || ' WHERE ID = ' || OLD.CONTROLE || ';';
        END
        ELSE
        BEGIN
            sql = coalesce('
            UPDATE OR INSERT INTO ' || TABELA || ' (
                ID,
                GRUPO,
                PARAMETRO,
                VALOR_EXT,
                COMENTARIO
            ) VALUES (
                '   || coalesce(NEW.CONTROLE,0)   || ',
                ''' || coalesce(NEW.GRUPO,'')     || ''',
                ''' || coalesce(NEW.DESCRICAO,'') || ''',
                ''' || coalesce(NEW.VALOR,'')     || ''',
                ''' || coalesce(NEW.OBSERVACAO,'')|| '''
            ) MATCHING ( ID ); ','');

            EXECUTE STATEMENT sql;
 
        END
    END

end
^

SET TERM ; ^

INSERT INTO TBPARAMETRO (TABELA, CODIGO, DESCRICAO, VALOR, OBSERVACAO, GRUPO)
VALUES ('TBUSUARIO', 'CAMPO_BLOQ_CLIENTE', 'CAMPOS BLOQUEADOS NO CADASTRO DE CLIENTES', '', 'ABA_DOCUMENTOS_INSCRICOES,
ABA_ENDERECO_PRINCIPAL,
ABA_ENDERECO_COBRANCA,
ABA_ENDERECO_ENTREGA,
ABA_EMAILS,
ABA_INFORMACOES_CONTATO,
ABA_CONTABILIZACAO,
ABA_OBS_GERAIS,
ABA_OBS_COMERCIAIS,
ABA_OBS_FISCAIS,
ABA_NOTIFICACOES_PEDIDOS,
ABA_OUTRAS_SITUACOES,
REPRESENTANTE,
COMISSAO_REPRESENTANTE,
TIPO_CLIENTE,
SITUACAO_CLIENTE,
CORRETOR,
LOJA,
ETIQUETA,
TAG,
MAGAZINE,
VENDEDOR,
COMISSAO_VENDEDOR,
GRUPO_CLIENTE,
COMO_NOS_CONHECEU,
POTENCIAL_COMPRA,
SEGMENTO,
DISPOSICAO,
ANIVERSARIO_EMPRESA,
SITE,
INSTAGRAM,
ABA_INFORMACOES_TRASNPORTE,
ABA_INFORMACOES_FINANCEIRAS,
ABA_BLOQUEIOS_INATIVACOES,
ABA_FORMAS_PAG,
ABA_CATALOGO_VENDAS,
ABA_METAS,
ABA_PRODUTO,
ABA_PRECO_MODELO,
ABA_DESCONTOS,
ABA_CONTATOS,
ABA_SOCIOS,
ABA_REFERENCIAS_COMERCIAIS_BANCARIAS,

SE VAZIO, TODOS PERMITIDOS', 'VEN');

INSERT INTO TBPARAMETRO (TABELA, CODIGO, DESCRICAO, VALOR, OBSERVACAO, GRUPO)
VALUES ('TBUSUARIO', 'CAMPOS_BLOQ_CLIENTES_SIMP', 'CAMPOS BLOQUEADOS NO CADASTRO DE CLIENTES SIMPLIFICADOS', '', 'CPF_CNPJ,
CLIENTE,
STATUS,
NOMEFANTASIA,
TELEFONE,
EMAIL,
IE,
IM,
ENDERECO,
NUMERO,
COMPLEMENTO,
UF,
CIDADE,
BAIRRO,
CEP,
TIPO_CLIENTE,
REPRESENTANTE,
VENDEDOR,
CORRETOR,
CONTATO,
ANIVERSARIO,
TELEFONE2,
CELULAR,
COMO_NOS_CONHECEU,
SEGMENTO,
DISPOSICAO,
SITE,
INSTAGRAM,
OBSERVACOES

SE VAZIO, PERMITIDO TODOS', 'VEN');