[20230501]为什么没有显示输出.txt

来源:这里教程网 时间:2026-03-03 18:43:14 作者:

[20230501]为什么没有显示输出.txt --//前几天在使用tpt usid.sql脚本查询时遇到的问题. 1.环境: SYS@192.168.31.8:1521/hrp430> @ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 2.问题: SYS@192.168.31.8:1521/hrp430> @ usid 1255 USERNAME SID            AUDSID OSUSER MACHINE  PROGRAM SPID  OPID CPID  SQL_ID  HASH_VALUE LASTCALL STATUS SADDR            PADDR            TADDR LOGON_TIME -------- -------------- ------ ------ -------- ------- ----- ---- ----- ------ ----------- -------- ------ ---------------- ---------------- ----- -------------------           '1255,14883'       0 oracle xhserver (ARC1)  13995   43 13995                  0   608226 ACTIVE 00000000BCD0A680 00000000BD7BD160       2023-04-20 10:54:05 --//LOGON_TIME=2023-04-20 10:54:05,当时超长显示.我使用pr.sql纵向输出. SYS@192.168.31.8:1521/hrp430> @ pr PL/SQL procedure successfully completed. --//嗯,没有输出。突然想起以前遇到类似问题: 链接 [20211126]完善tpt pr.sql脚本.txt. --//执行如下ok: SYS@192.168.31.8:1521/hrp430> @ pr 1255 --//结果略. 3.分析: --//不过我当时想我前面已经执行@ usid 1255,相当于已经定义了参数1=1255,我并没有清除参数1的定义,调用pr时应该自动使用我前面 --//的赋值.当时事情太多,这个问题暂时放一下.如果当时执行define 1 也许问题就很容易定位. --//五一放假,仔细查看usid.sql的源代码发现实际上在执行完成时tpt的脚本修改参数1,2的定义. def 1=&usid_sql_hash_value def 2=% --//对于我的例子相当于将参数1定义为0.执行 @pr 相当于执行 @pr 0,而没有sid=0的信息,没有输出就正常了. --//作者这样写的主要目的是方便其他脚本调用时不用再输入参数.比如sqlh.sql脚本.

相关推荐