[20240515]建立完善t2sh.sql脚本.txt --//建立一个简单输入简单文本计算sql_id,hash_values的sql脚本,主要用于简单sql语句以及对象的full_hash_value,sql_id,hash_value计算. -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- File name: t2sh -- Purpose: query Sql_id ,Hash_value , full_hash_value from input sql_Text -- only work at Linux (Little Endian) -- Author: lfree -- -- Usage: -- @ t2sh "'<text>'" -- -------------------------------------------------------------------------------- column sql_id format a13 column hash_value format 9999999999 SELECT lower( sys.utl_raw.reverse(sys.utl_raw.substr(calc.rev_full_hash,1,4))|| sys.utl_raw.reverse(sys.utl_raw.substr(calc.rev_full_hash,5,4))|| sys.utl_raw.reverse(sys.utl_raw.substr(calc.rev_full_hash,9,4))|| sys.utl_raw.reverse(sys.utl_raw.substr(calc.rev_full_hash,13,4))) full_hash_value , dbms_sql_translator.sql_id (&1) sql_id , dbms_sql_translator.sql_hash(&1) hash_vaule FROM dual, -- (select sys.dbms_crypto.hash(src => UTL_I18N.string_to_raw(&1||chr(0),'AL32UTF8'),2) rev_full_hash from dual ) calc (select sys.dbms_crypto.hash(src => rawtohex(&1||chr(0)),2) rev_full_hash from dual ) calc ; --//注意:该脚本做sql_id计算,sql_text计算不需要输入最后的chr(0). --//注意一个细节, &1两边没有单引号,这是故意为之,这样输入参数1格式"'<text>'" --//因为一些特殊对象,比如表 因为后面要加入namespace,本来计算加入chr(1)||chr(0)||chr(0)||chr(0),这样计算时 --//要去掉1个chr(0),这样写法便于操作计算. --//简单测试: --//注意参数不支持多行的文本格式,我仅仅用来做简单计算. SCOTT@test01p> select * from dept ; DEPTNO DNAME LOC ---------- -------------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SCOTT@test01p> @ hash HASH_VALUE SQL_ID CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE HASH_HEX SQL_EXEC_START SQL_EXEC_ID ---------- ------------- ------------ ---------- --------------- ---------- ------------------- ----------- 4071881952 4g0qfgmtb7z70 0 130272 3383998547 f2b3fce0 2024-05-15 21:49:12 16777218 SYS@test> select * from v$db_object_cache where hash_value=4071881952 and rownum=1 2 @prxx ============================== OWNER : NAME : select * from dept DB_LINK : NAMESPACE : SQL AREA TYPE : CURSOR SHARABLE_MEM : 16216 LOADS : 1 EXECUTIONS : 3 LOCKS : 1 PINS : 0 KEPT : NO CHILD_LATCH : 0 INVALIDATIONS : 0 HASH_VALUE : 4071881952 LOCK_MODE : NULL PIN_MODE : NONE STATUS : VALID TIMESTAMP : 2024-05-17/22:50:24 PREVIOUS_TIMESTAMP : LOCKED_TOTAL : 3 PINNED_TOTAL : 4 PROPERTY : FULL_HASH_VALUE : 2a7dbd05b32556914782ce7cf2b3fce0 CON_ID : 3 CON_NAME : ADDR : 000007FF0078A9C0 EDITION : PL/SQL procedure successfully completed. SYS@test> @ t2sh "'select * from dept '" FULL_HASH_VALUE SQL_ID HASH_VAULE -------------------------------- ------------- ---------- 2a7dbd05b32556914782ce7cf2b3fce0 4g0qfgmtb7z70 4071881952 SYS@test> select * from v$db_object_cache where name = 'DEPT' 2 @prxx ============================== OWNER : SCOTT NAME : DEPT DB_LINK : NAMESPACE : TABLE/PROCEDURE TYPE : TABLE SHARABLE_MEM : 4072 LOADS : 1 EXECUTIONS : 0 LOCKS : 0 PINS : 0 KEPT : NO CHILD_LATCH : 93026 INVALIDATIONS : 0 HASH_VALUE : 2956815202 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LOCK_MODE : NONE PIN_MODE : NONE STATUS : VALID TIMESTAMP : 2019-08-17/21:38:48 PREVIOUS_TIMESTAMP : LOCKED_TOTAL : 2 PINNED_TOTAL : 2 PROPERTY : FULL_HASH_VALUE : d228ecb73e713f600e1f246bb03d6b62 CON_ID : 3 CON_NAME : TEST01P ADDR : 000007FF002CD2E0 EDITION : PL/SQL procedure successfully completed. SYS@test> @ t2sh "'DEPT.SCOTT.TEST01P'||chr(1)||chr(0)||chr(0)" FULL_HASH_VALUE SQL_ID HASH_VAULE -------------------------------- ------------- ---------- d228ecb73e713f600e1f246bb03d6b62 0w7t4dfs3uuv2 2956815202 --//正好对上.注意少一个chr(0)
[20240515]建立完善t2sh.sql脚本.txt
来源:这里教程网
时间:2026-03-03 20:00:56
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)
- rac asm新增磁盘报0RA-15333或ORA-15075
rac asm新增磁盘报0RA-15333或ORA-15075
26-03-03 - Oracle RAC的排障案例一则
Oracle RAC的排障案例一则
26-03-03 - 测试开发新技能:Oracle到高斯数据库的无缝迁移
测试开发新技能:Oracle到高斯数据库的无缝迁移
26-03-03 - 因Oracle 23ai,甲骨文中国罕见的开了个会
因Oracle 23ai,甲骨文中国罕见的开了个会
26-03-03 - 数据库管理-第190期 备份堪比生死(20240515)
数据库管理-第190期 备份堪比生死(20240515)
26-03-03 - 数据库管理-第180期 23ai: Cloud/Container Plus AI(20240503)
- Oracle 23ai新特性—DBMS_DICTIONARY_CHECK
Oracle 23ai新特性—DBMS_DICTIONARY_CHECK
26-03-03 - oracle怎么处理json格式
oracle怎么处理json格式
26-03-03 - Oracle 23ai新特性—DB_DEVELOPER_ROLE
Oracle 23ai新特性—DB_DEVELOPER_ROLE
26-03-03
