[20250226]sqlplus sql脚本注意参数1之类的定义.txt --//在调式sql脚本遇到的问题,浪费一点时间,做一个记录。 --//我以前写过一个脚本实现10进制,16进制相互转换的脚本,参考 [20240928]10,16进制转10,16进制的sql脚本.txt --//这样改写一些脚本带入hash值可以10进制,16进制,我以前改写时将hd.sql代码写入对应脚本里面的,现在改写为直接调用。 --//在改为直接调用的过程中,遇到的问题,参数1被覆盖了,提醒自己以后调试这类代码注意这个问题。 --//通过一个简单的例子说明问题。 SCOTT@book01p> define 1=1111 SCOTT@book01p> define 2=aaaa SCOTT@book01p> define 1 DEFINE 1 = "1111" (CHAR) SCOTT@book01p> define 2 DEFINE 2 = "aaaa" (CHAR) SCOTT@book01p> @ hd &&2 TEXT N10 C16 U16 HEX_STATUS -------------------- ----------------- -------------------------------- -------------------------------- ---------- aaaa 43690 aaaa AAAA hex SCOTT@book01p> define 2 DEFINE 2 = "aaaa" (CHAR) SCOTT@book01p> define 1 DEFINE 1 = "aaaa" (CHAR) --//可以发现参数1被覆盖了,要减少原来的改动,要先使用1个参数保存对应参数1,调用完成后再保存回去。 --//例子如下: define tt='&&1' @ hd &&2 define 2=&&v_n10 define 1='&&tt' --//另外注意一个问题如果参数1带入'',直接写define tt=&&1会报错。 SCOTT@book01p> define 1='' SCOTT@book01p> define tt=&1 SP2-0137: DEFINE requires a value following equal sign SCOTT@book01p> define tt='&1' SCOTT@book01p> define tt="&1" SCOTT@book01p> define tt DEFINE TT = "" (CHAR) --//加入单双引号就可以了。 --//实际上只要调用@ hd 任何参数,参数1都会覆盖,简单验证: SCOTT@book01p> define 1=1111 SCOTT@book01p> define 2=aaaa SCOTT@book01p> define tt=&2 SCOTT@book01p> @ hd &tt TEXT N10 C16 U16 HEX_STATUS -------------------- ----------------- -------------------------------- -------------------------------- ---------- aaaa 43690 aaaa AAAA hex SCOTT@book01p> define 1 DEFINE 1 = "aaaa" (CHAR) SCOTT@book01p> define 2 DEFINE 2 = "aaaa" (CHAR) --//参数1一样会被覆盖。 --//顺便贴上改写的hd.sql脚本: $ 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 new_value v_hex_status column n10 format 9999999999999999 new_value v_n10 column c16 format a32 new_value v_c16 column u16 format a32 new_value v_u16 SELECT text ,n10 ,REPLACE (TO_CHAR (n10, LPAD ('x', 16, 'x')), ' ') c16 ,upper(REPLACE (TO_CHAR (n10, LPAD ('x', 16, 'x')), ' ')) u16 ,hex_status FROM (SELECT '&&vc' text -- ,DECODE ( hex_status ,'hex', TO_NUMBER ( SUBSTR ('&&vc', INSTR (LOWER ('&&vc'), 'x',-1) + 1) ,'xxxxxxxxxxxxxxxx') ,'dec', TO_NUMBER ('&&vc') ,0) n10 ,DECODE ( hex_status ,'hex', TO_NUMBER ( replace (lower('&&vc'), 'x') ,'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]+[xX]?$') THEN 'hex' ELSE 'other' END AS Hex_Status FROM DUAL));
[20250226]sqlplus sql脚本注意参数1之类的定义.txt
来源:这里教程网
时间:2026-03-03 21:36:21
作者:
编辑推荐:
- [20250226]sqlplus sql脚本注意参数1之类的定义.txt03-03
- OGG进程异常导致rman归档删除异常RMAN-0813703-03
- 南大通用GBase 8s数据库的压缩功能全解析03-03
- 99%的家庭沙发都买错了!湖南家居三款坐感颜值双满分03-03
- 如何将一个普通的非分区表进行分区3 Partition Exchange 方法03-03
- 记一次Oracle 19C RAC ORA-043003-03
- Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?03-03
- Oracle数据库,除了DBMS_METADATA.GET_DDL以外,如何获取表定义语句?03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- OGG进程异常导致rman归档删除异常RMAN-08137
OGG进程异常导致rman归档删除异常RMAN-08137
26-03-03 - 记一次Oracle 19C RAC ORA-0430
记一次Oracle 19C RAC ORA-0430
26-03-03 - Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?
Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?
26-03-03 - Oracle数据库,除了DBMS_METADATA.GET_DDL以外,如何获取表定义语句?
- Oracle 19.24 补丁升级后数据库打开异常案例分析
Oracle 19.24 补丁升级后数据库打开异常案例分析
26-03-03 - 噩梦!改个参数,数据库竟然气到“拒绝上班”?
噩梦!改个参数,数据库竟然气到“拒绝上班”?
26-03-03 - 记一次Oracle Library cache lock性能卡顿案例分析
记一次Oracle Library cache lock性能卡顿案例分析
26-03-03 - DeepSeek问答,Oracle数据库的这些版本,千万别用,巨坑!
DeepSeek问答,Oracle数据库的这些版本,千万别用,巨坑!
26-03-03 - 湖南家具|泡芙储物床小户型必买,卧室省出双倍收纳
湖南家具|泡芙储物床小户型必买,卧室省出双倍收纳
26-03-03 - 表空间使用率迅速增长排查
表空间使用率迅速增长排查
26-03-03
