Uma forma de efetuar o checksum do seu fonte pl/sql

Buy Lorazepam Online Without Prescription Lendo sobre segurança no Oracle encontrei algo muito interessante para os desenvolvedores e no controle de versão de seus fontes no cliente.
Já pensou em ter um valor hash do seu fonte para identificar se houve alteração no seu cliente a partir de dentro do Oracle?

https://www.completerehabsolutions.com/equipment-analysis-selection/ É isso mesmo você como desenvolvedor pode fechar a versão e ao invés de ficar usando programas externos e tals pode controlar as versões tudo pelos códigos hash´s dos seus fontes.
Ai o controle fica ao seu encargo.

https://thesentinelgroup.com/personal-injury/ Tenho por exemplo de uma procedure chamada get_idade que podesmo usar:

follow CREATE OR REPLACE FUNCTION "PRODUCAO"."GET_IDADE" (p_codpessoa number) return number as w_age number(11); begin Select Trunc ( (SYSDATE - a.dtnascimento) /365, 0 ) into w_age from pessoa a where codpessoa = p_codpessoa; return w_age; end;

watch Utilizando a package dbms_utility e a função get_hash_value fazemos os calculos para obter o seu hash e assim ter um checksum.
No meu caso utilizei o avg para média entre todos os hashes.

https://www.wjsmithconstruction.com/general-contractors-grimesland-nc/ DBMS_UTILITY.GET_HASH_VALUE ( name VARCHAR2, base NUMBER, hash_size NUMBER) RETURN NUMBER;

Onde:
name é a string a ser hashed;
base é o valor de base para o valor retornado de hash para inicio.
hash_size é o tamanho designado para a tabela hash.

SELECT AVG(DBMS_UTILITY.GET_HASH_VALUE(TEXT,1000000000,POWER(2,30))) AS CHECKSUM FROM DBA_SOURCE WHERE OWNER ='PRODUCAO' AND NAME ='GET_IDADE';
                                          CHECKSUM
--------------------------------------------------
                                        1609903818

Agora se eu alterar o codigo com um simples enter no seu fonte:

  CREATE OR REPLACE FUNCTION "PRODUCAO"."GET_IDADE" (p_codpessoa number)
return number as 
w_age number(11);
begin
       Select Trunc ( (SYSDATE - a.dtnascimento) /365, 0 ) into w_age 
         from pessoa a 
       where codpessoa = p_codpessoa;
       
       return w_age;

end;
                                          CHECKSUM
--------------------------------------------------
         1629657837.181818181818181818181818181818

Agora um exemplo simples pegando todos os valores hash de todos os objetos o seu owner de produção.

SQL> SELECT name,AVG(DBMS_UTILITY.GET_HASH_VALUE(TEXT,1000000000,POWER(2,30))) AS CHECKSUM FROM DBA_SOURCE WHERE OWNER ='PRODUCAO' group by name;

NAME                                                                     CHECKSUM
------------------------------ --------------------------------------------------
ATUAENTSAINOTA                                                    1606026670.8125
GERAPROMOCAO                            1627241324.171428571428571428571428571429
FGERARANDOMNOME                                                      1580305263.9
GERARMOVIMENTO                          1636410989.882978723404255319148936170213
CRIAITEM                                                            1570842205.44
GERARPRODUTO                            1672790823.928571428571428571428571428571
GET_IDADE                               1629657837.181818181818181818181818181818
MANUPROMOCAO                                                      1612685026.5625
FGERATPPESSOA                           1539805137.071428571428571428571428571429
CRIANOTA                                1456069025.916666666666666666666666666667

Maiores detalhes sobre a package PL/SQL Packages and Types Reference 10gR1

%name Uma forma de efetuar o checksum do seu fonte pl/sql

Autor: Rafael Stoever

Buy Lorazepam Online Without Prescription Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte https://www.52editions.com/personal/ a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, source site OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).