怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出",在日常操作中,相信很多人在怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出问题上存在疑惑,小编查阅了各式资
千家信息网最后更新 2025年01月20日怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出
这篇文章主要介绍"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出",在日常操作中,相信很多人在怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
/** 功能:用于在10g,11g中查询隐含参数的值,主要是可以在SQLPLUS窗口格式化输出 注意Cn_Batch_Length的值设置的没必要太大 作者:stotf 时间:2020/3/28**/Create Or Replace Function f_Imp_Param(Name In Varchar2) Return Varchar2 Is Vc_Term Varchar2(100); --用于参数替换 Vc_Result Long; --返回查询结果 Vc_Sql Varchar2(4000); --定义sql Cur_Kk Sys_Refcursor; --参考游标 Cn_Batch_Length Constant Pls_Integer := 300; --定义最多查询行数 v_Num Number := 0; --行号 --定义列头 Vc_Parameter Varchar2(100) := 'PARAMETER'; Vc_Session_Value Varchar2(100) := 'SESSION_VALUE'; Vc_Instance_Value Varchar2(100) := 'INSTANCE_VALUE'; Vc_Is_Session_Modifiable Varchar2(100) := 'IS_SESSION_MODIFIABLE'; Vc_Is_System_Modifiable Varchar2(100) := 'IS_SYSTEM_MODIFIABLE'; --用于记录列的最大实际长度 Type Length_Col Is Record( Para Number := Length(Vc_Parameter), Sess Number := Length(Vc_Session_Value), Inst Number := Length(Vc_Instance_Value), Is_Sess_Mod Number := Length(Vc_Is_Session_Modifiable), Is_Sys_Mod Number := Length(Vc_Is_System_Modifiable)); Rec_Length Length_Col; --定义和查询列匹配的record Type Rec_Result Is Record( Parameter X$ksppi.Ksppinm%Type, Session_Value X$ksppcv.Ksppstvl%Type, Instance_Value X$ksppsv.Ksppstvl%Type, Is_Session_Modifiable Varchar2(10), Is_System_Modifiable Varchar2(10)); --定义存放结果的table Type Tab_Result Is Table Of Rec_Result; Typ_Tab Tab_Result;Begin --处理参数,如果开头没有加下划线,则加上 If Substr(Name, 1, 1) = '_' Then Vc_Term := '/' || Lower(Name); Else Vc_Term := '/_' || Lower(Name); End If; Vc_Sql := 'Select a.Ksppinm "Parameter", b.Ksppstvl "Session Value", c.Ksppstvl "Instance Value", Decode(Bitand(a.Ksppiflg / 256, 1), 1, ''TRUE'', ''FALSE'') Is_Session_Modifiable, Decode(Bitand(a.Ksppiflg / 65536, 3), 1, ''IMMEDIATE'', 2, ''Deferred'', 3, ''IMMEDIATE'', ''FALSE'') Is_System_Modifiable From X$ksppi a, X$ksppcv b, X$ksppsv c Where a.Indx = b.Indx And a.Indx = c.Indx And a.Ksppinm Like :name Escape ''/'''; Open Cur_Kk For Vc_Sql Using Vc_Term || '%'; --循环结果,找出每一列实际值的最大长度 Fetch Cur_Kk Bulk Collect Into Typ_Tab Limit Cn_Batch_Length; For i In 1 .. Typ_Tab.Count Loop If Length(Typ_Tab(i).Parameter) > Rec_Length.Para Then Rec_Length.Para := Length(Typ_Tab(i).Parameter); End If; If Length(Typ_Tab(i).Session_Value) > Rec_Length.Sess Then Rec_Length.Sess := Length(Typ_Tab(i).Session_Value); End If; If Length(Typ_Tab(i).Instance_Value) > Rec_Length.Inst Then Rec_Length.Inst := Length(Typ_Tab(i).Instance_Value); End If; If Length(Typ_Tab(i).Is_Session_Modifiable) > Rec_Length.Is_Sess_Mod Then Rec_Length.Is_Sess_Mod := Length(Typ_Tab(i).Is_Session_Modifiable); End If; If Length(Typ_Tab(i).Is_System_Modifiable) > Rec_Length.Is_Sys_Mod Then Rec_Length.Is_Sys_Mod := Length(Typ_Tab(i).Is_System_Modifiable); End If; End Loop; Close Cur_Kk; Dbms_Output.Put_Line('总记录数:' || Typ_Tab.Count); --输出列头 Vc_Result := 'NO ' || Rpad(Vc_Parameter, Rec_Length.Para + 2, ' ') || Rpad(Vc_Session_Value, Rec_Length.Sess + 2, ' ') || Rpad(Vc_Instance_Value, Rec_Length.Inst + 2, ' ') || Rpad(Vc_Is_Session_Modifiable, Rec_Length.Is_Sess_Mod + 2, ' ') || Rpad(Vc_Is_System_Modifiable, Rec_Length.Is_Sys_Mod + 2, ' ' || Chr(10)); --输出记录 For i In 1 .. Typ_Tab.Count Loop v_Num := v_Num + 1; --字符后连接一个空格的字符,防止null值对长度计算的影响 Vc_Result := Vc_Result || Rpad(To_Char(v_Num), 6, ' ') || Rpad(Typ_Tab(i).Parameter || ' ', Rec_Length.Para + 2, ' ') || Rpad(Typ_Tab(i).Session_Value || ' ', Rec_Length.Sess + 2, ' ') || Rpad(Typ_Tab(i).Instance_Value || ' ', Rec_Length.Inst + 2, ' ') || Rpad(Typ_Tab(i).Is_Session_Modifiable || ' ', Rec_Length.Is_Sess_Mod + 2, ' ') || Rpad(Typ_Tab(i).Is_System_Modifiable || ' ', Rec_Length.Is_Sys_Mod + 2, ' ') || Chr(10); End Loop; Dbms_Output.Put_Line(Vc_Result); Return '总记录数:' || v_Num;Exception When Others Then Return 'ERROR: ' || Sqlcode || Sqlerrm;End;
到此,关于"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
参数
输出
格式
学习
查询
结果
长度
最大
字符
实际
更多
帮助
实用
必要
接下来
作者
功能
开头
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
jsp增删改查数据库
长宁区正规软件开发不二之选
阿奇巴尔德虎扑数据库
asp 数据库封装
数据库原理安全性实验
东莞市光速网络技术
河北弘曦互联网科技
数据库制作二维码
网络安全要出差吗
服务器视频加速
轻量服务器和普通服务器的区别
ea服务器联机
简单web服务器实现
数据库索引建立实例
关于网络技术的发展
服务器发送请求在那个周期
嵌入式软件开发硕士论文
我的世界龙珠服务器下载电脑版
软件开发发票大类怎么开
软件开发人员组织
网络安全员会议发言材料
北京租用服务器市场虚拟主机
数据库列表无法打开
数据库性别yes表示男
数据库 标准化
新疆古漠网络技术有限公司官网
轻量服务器和普通服务器的区别
idc网络安全行业报告
邮政网络安全
软件开发人员组织