怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出",在日常操作中,相信很多人在怎么查看oralce隐含参数并在SQLPLUS窗口格式化输出问题上存在疑惑,小编查阅了各式资
千家信息网最后更新 2025年11月07日怎么查看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安全错误
数据库的锁怎样保障安全
中国网络安全表态
电脑软件开发怎么找工作
江苏重点企业能耗上传软件开发
下列属于索引数据库的
网络安全工程师证书等级
数据库access中职
如何设计数据库以保证安全性
宿舍网络安全隐患
数据库er表格式
广州守腾网络技术有限公司
模拟苹果验证服务器降级
删除sql数据库表某行
武汉系统软件开发服务费
科技信息时代互联网发展
土巴兔软件开发offer
东平租房软件开发
软件开发专业的发展历史
服务器存储交换机搭配方案图
项链的商品分析软件开发
天宇网络技术贺军
原神不同服务器能联机么
盘锦互助盘软件开发多少钱
sql数据库中一个表备份
高密华荣互联网科技有限公司
金网天下网络技术有限公司
三个帮网络技术有限
数据库可以存在相同的元组吗
河北通用软件开发推荐
国泰安数据库报表类型一般用
福建网络安全成效