Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获取select语句的倒数第二个寄存器? 环境_Sql_Oracle_Select_Oracle11g_Sqlplus - Fatal编程技术网

Sql 如何获取select语句的倒数第二个寄存器? 环境

Sql 如何获取select语句的倒数第二个寄存器? 环境,sql,oracle,select,oracle11g,sqlplus,Sql,Oracle,Select,Oracle11g,Sqlplus,使用OracleXE11g的虚拟机(我使用的是SQL Plus) 解释 我需要使用1个查询(而不使用pl/SQL): 在服务器中执行的最后一条SQL语句 自该语句首次加载到共享池中以来执行该语句的次数 执行同一语句所用的CPU时间 总而言之,这就是我提出的问题 SELECT sq.SQL_TEXT ,sq.EXECUTIONS, sq.CPU_TIME FROM gv$sql sq; 当然,这个查询正在运行,但它显示了所有寄存器。我需要得到下一个到最后一个,因为最后一个将是执行时的同一

使用OracleXE11g的虚拟机(我使用的是
SQL Plus

解释 我需要使用1个查询(而不使用
pl/SQL
):

  • 在服务器中执行的最后一条
    SQL
    语句
  • 自该语句首次加载到共享池中以来执行该语句的次数
  • 执行同一语句所用的CPU时间
总而言之,这就是我提出的问题

SELECT sq.SQL_TEXT ,sq.EXECUTIONS, sq.CPU_TIME
  FROM gv$sql sq;
当然,这个查询正在运行,但它显示了所有寄存器。我需要得到下一个到最后一个,因为最后一个将是执行时的同一个查询

我想要达到的目标 如何获取该查询的倒数第二个寄存器?

使用降序,取第二行:

select sql_text, executions, cpu_time 
  from (select sql_text, executions, cpu_time, 
               row_number() over (order by last_load_time desc) rn
          from gv$sql)
  where rn = 2;

不太熟悉11g,但有没有一个日期字段可以用于窗口功能?这是家庭作业吗?还是一个真正的问题?我很难想象这些信息对您有多大帮助,因为您找到的SQL语句几乎肯定来自Oracle在后台运行的后台进程。它首先需要一个ORDER BY,然后研究下一个FETCH。。。有了补偿条款,你是对的,这是一个家庭作业,所以没有必要在真实的环境中有真正的用途。我们刚刚了解了用户、权限、角色等@JustinCaveI尝试了fetch语句,但没有使用11g版本。我发现它最初是在12c release@DRapp中引入的