oracle - Oracle 的其余 V$ View 定义在哪里?

标签 oracle

View V$FIXED_VIEW_DEFINITION包含所有 V$ View 的定义。但是,数据类型是 VARCHAR2(4000),因此只显示 View 正文的前 4000 个字符:

SELECT column_name, data_type, data_length 
  FROM dba_tab_cols 
 WHERE table_name = 'V_$FIXED_VIEW_DEFINITION';

COLUMN_NAME      DATA_TYPE  DATA_LENGTH
---------------  ---------  -----------
VIEW_NAME        VARCHAR2           128
VIEW_DEFINITION  VARCHAR2          4000
CON_ID           NUMBER              22

这适用于较短的 View ,但对于其他 View ,如 V$SESSION,查询文本会在字符 4000 之后停止:

SELECT * FROM v$fixed_view_definition WHERE view_name = 'GV$SESSION';

VIEW_NAME   VIEW_DEFINITION
----------  --------------------------------------------
GV$SESSION  select s.inst_id, ... ,decode(bitand(s.ksuse
                                 here it stops abruptly ^

现在,显然,Oracle 已将全文存储在某处,函数 DBMS_UTILITY. EXPAND_SQL_TEXT T重建完整的查询,但并非没有对查询做一些奇怪的事情,比如引用所有列、引入别名等:

DECLARE
  c CLOB;
  i NUMBER := 1;
  linelen CONSTANT NUMBER := 100;
BEGIN
  DBMS_UTILITY.EXPAND_SQL_TEXT('SELECT * FROM V$SESSION', c);
  LOOP 
    EXIT WHEN i > DBMS_LOB.GETLENGTH(c);
    DBMS_OUTPUT.PUT_LINE(DBMS_LOB.SUBSTR(c, linelen, i));
    i := i + linelen;
  END LOOP;
END; 
/


SELECT "A1"."SADDR" "SADDR","A1"."SID" "SID","A1"."SERIAL#" "SERIAL#","A1"."AUDS
ID" "AUDSID","A1"."PADDR" "PADDR","A1"."USER#" "USER#","A1"."USERNAME" "USERNAME
...

那么,其余的 V$ 查询主体在哪里?

最佳答案

为了得到一个清晰的答案,听起来您发现了使用编译到 Oracle 二进制文件中的完整固定 View 源查询

strings $ORACLE_HOME/bin/oracle

并搜索特定 View 的输出。

Burleson had provided a hint固定 View 同义词是由 $ORACLE_HOME/rdbms/admin/ 目录脚本(特别是 cdfixed.sql)创建的。

关于oracle - Oracle 的其余 V$ View 定义在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66991236/

相关文章:

java - 谁能提供 XMLType xdb.jar 和 xmlparserv2.jar 的 Maven 存储库

Oracle 中的 SQL 参数限制

java - 为 Oracle RAC 配置 JBoss 数据源

java - 如何将 Spring Boot JMS 从 ActiveMQ 迁移到 Oracle Advanced Queuing

oracle - 大容量数据存储和处理

Oracle/SQL : Check If Trigger Enabled/Disabled

sql - 根据年份是否(完全)包含在日期范围内进行匹配

mysql - sql server 中的 XMLNS 问题

oracle - 在oracle中为逗号分隔值创建catsearch索引

sql - 阅读 Oracle 解释计划