[20240925]10,16进制转10,16进制的sqj脚本.txt --//工作需要一个10,16进制转10,16进制的sql脚本,主要hash_value值有时候输入16进制有时候输入10进制,我需要执行SQL代码自动识 --//别。 1.例子: SCOTT@book01p(289,22246)> @ver2 ============================== PORT_STRING : x86_64/Linux 2.4.xx VERSION : 21.0.0.0.0 BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID : 0 PL/SQL procedure successfully completed. SCOTT@book01p(289,22246)> select * from dept where deptno=20; DEPTNO DNAME LOC ---------- ------------------------------ ------------- 20 RESEARCH DALLAS SCOTT@book01p(289,22246)> @ hash HASH_VALUE SQL_ID CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE HASH_HEX SQL_EXEC_START SQL_EXEC_ID ---------- ------------- ------------ ---------- --------------- ---------- ------------------- ----------- 95129850 80baj2c2ur47u 0 102650 2852011669 5ab90fa 2024-09-25 09:03:46 16777217 SYS@book> @ sharepool/shp4 80baj2c2ur47u 0 HANDLE_TYPE KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLHDIVC KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 ---------------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- child handle address 0000000069C6DB90 0000000069C6E0F0 select * from dept where deptno=20 0 0 0 00000000676BB9C8 0000000067D9E208 8128 12128 3299 23555 23555 95129850 80baj2c2ur47u 0 parent handle address 0000000069C6E0F0 0000000069C6E0F0 select * from dept where deptno=20 0 0 0 000000006695B300 00 4064 0 0 4064 4064 95129850 80baj2c2ur47u 65535 SYS@book> @ fchaz 0000000067D9E208 LOC KSMCHPTR KSMCHIDX KSMCHDUR KSMCHCOM KSMCHSIZ KSMCHCLS KSMCHTYP KSMCHPAR KSMCHPTR_BEGIN KSMCHPTR_END+1 --- ---------------- ---------- ---------- ---------------- ---------- -------- ---------- ---------------- ---------------- ----------------- SGA 0000000067D9D9B0 1 1 KGLH0^5ab90fa 4096 recr 4095 000000006695B300 0000000067D9D9B0 0000000067D9E9B0 --//5ab90fa = 95129850,我希望生成的SQL脚本不管输入5ab90fa,95129850自动识别转换为95129850。 2.脚本建立: $ cat hd.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- Name: hd.sql -- Purpose: display hex or dec to hex or dec -- -- Author: lfree -- Usage: -- @ hd <hex|dec> -- -------------------------------------------------------------------------------- define vc=&1 column text format a20 column hex_status format a10 SELECT text ,n10 ,REPLACE (TO_CHAR (n10, LPAD ('x', 16, 'x')), ' ') c16 ,hex_status FROM (SELECT '&&vc' text ,DECODE ( hex_status ,'hex', TO_NUMBER ( SUBSTR ('&&vc', INSTR (LOWER ('&&vc'), 'x') + 1) ,'xxxxxxxxxxxxxxxx') ,'dec', TO_NUMBER ('&&vc') ,0) n10 ,hex_status FROM (SELECT CASE WHEN REGEXP_LIKE (LOWER ('&&vc'), '^[0-9]+$') THEN 'dec' WHEN REGEXP_LIKE (LOWER ('&&vc') ,'^0?[xX]?[0-9a-f]+$') THEN 'hex' ELSE 'other' END AS Hex_Status FROM DUAL)); --//注:WHEN REGEXP_LIKE (lower('&&1'), '^[0-9]+$') THEN 'dec'要写在前面,就是如果我输入1234,脚本优先认为是10进制数。 --//如果颠倒过来,1234也可以认为是16进制数字。 3.测试: SCOTT@book01p> @ hd 1234 TEXT N10 C16 HEX_STATUS -------------------- --------------------- ----------------- ---------- 1234 1234 4d2 dec SCOTT@book01p> @ hd x1234 TEXT N10 C16 HEX_STATUS -------------------- --------------------- ----------------- ---------- x1234 4660 1234 hex SCOTT@book01p> @ hd xa0 TEXT N10 C16 HEX_STATUS -------------------- --------------------- ----------------- ---------- xa0 160 a0 hex SCOTT@book01p> @ hd 0xa0 TEXT N10 C16 HEX_STATUS -------------------- --------------------- ----------------- ---------- 0xa0 160 a0 hex
[20240925]10,16进制转10,16进制的sqj脚本.txt
来源:这里教程网
时间:2026-03-03 20:38:24
作者:
编辑推荐:
- [20240925]10,16进制转10,16进制的sqj脚本.txt03-03
- oracle03-03
- n pdb 异机恢复成pdb03-03
- 单机转rac03-03
- ogg extract进程启动报错ogg -0030303-03
- [20240925]toad编写sql参数替换的问题.txt03-03
- 数据库数据恢复—Oracle数据库打开报错的数据恢复案例03-03
- 回家过中秋?扎心,锁表导致系统挂了03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库数据恢复—Oracle数据库打开报错的数据恢复案例
数据库数据恢复—Oracle数据库打开报错的数据恢复案例
26-03-03 - 回家过中秋?扎心,锁表导致系统挂了
回家过中秋?扎心,锁表导致系统挂了
26-03-03 - 记一次核心业务表数据误删的溯源案例分析
记一次核心业务表数据误删的溯源案例分析
26-03-03 - PMON (ospid: 26463): terminating the instance due to error 471
- oracle宕机ORA-04031 ("shared pool","unknown object","sga heap(1,1)",&quo
- Oracle再度发起开发人员调查,没人不服吧!
Oracle再度发起开发人员调查,没人不服吧!
26-03-03 - 数据库管理-第238期 23ai:全球分布式数据库-架构与组件(20240904)
- 拼多多上线“多多丰收馆”庆丰收,投入10亿补贴扶持新质农货商家
拼多多上线“多多丰收馆”庆丰收,投入10亿补贴扶持新质农货商家
26-03-03 - Oracle对象:序列(sequence)介绍
Oracle对象:序列(sequence)介绍
26-03-03 - 数据库性能再度提升20%.....
数据库性能再度提升20%.....
26-03-03
