怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出",在日常操作中,相信很多人在怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出问题上存在疑惑,小编查阅了各式资
千家信息网最后更新 2026年11月01日怎么查看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安全错误
数据库的锁怎样保障安全
互联网科技公司排名
互联网科技与金融科技
中国 科技 互联网
奇酷互联网科技
互联网金融科技创新
广州紫鲸互联网科技
互联网巨头投资的硬核科技
北京三清互联网科技
小米互联网科技园设置
互联网对科技的发展
呼和浩特新华互联网科技学院
互联网保险科技创业
深圳艾果互联网通讯科技
互联网金融科技名词解释
领航科技大厦互联网公司
互联网相关科技技术
互联网科技包装股份有限公司上市
工业互联网科技创业
广西科技产业互联网是什么
张家口科技产业互联网平台
互联网高科技
南京欣网互联网络科技
互联网络科技有限公司
科技服务与互联网
智慧科技互联网
哈尔滨新华互联网科技
以后互联网后是啥科技
茂名市互联网科技产业园
深圳市优智互联网科技有限公司
互联网金融金融科技