oracle怎样查询数据库函数是不是被执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎样查询数据库函数是不是被执行相关的知识,希望对你有一定的参考价值。

参考技术A 基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明

一、什么是执行计划(explain
plan)

执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。

二、如何查看执行计划

1: 在PL/SQL下按F5查看执行计划。第三方工具toad等。

很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面设置的。可以看到很多其它信息,如下所示本回答被提问者和网友采纳

oracle存储过程中执行查询sql语句报错

Create Or Replace Procedure UP_ExecSqlProcForDS(strSql In Varchar2,cur_out Out sys_refcursor)
As
Begin
Open cur_out For
Execute immediate strSql;
End;
strSql是一条查询sql语句,类似于select * from table,我想要的是给存储过程传一个查询的sql语句,然后存储过程给我返回结果集,怎么弄?

参考技术A 你这种可以用函数来实现
CREATE OR REPLACE FUNCTION UP_ExecSqlProcForDS RETURN NUMBER IS

CURSOR tmcur_out IS
select *from table
;
begin
FOR l_cur IN tmcur_out LOOP
end loop
exception
end
这个只是框架,你自己可以 根据自己的需要作适当修改
参考技术B Open cur_out For strsql;
这个是么?
这是定义游标的使用方法,游标的语法是一个SELECT语句的字符串

type cursor_type is ref cursor;
c1 cursor_type;

open c1 for selectsql;
参考技术C CREATE OR REPLACE Procedure UP_ExecSqlProcForDS(strSql In Varchar2,cur_out Out sys_refcursor)
As
Begin
Open cur_out For
strSql;
End;本回答被提问者采纳
参考技术D 我空间有个关于存储过程的,看看能不能帮到你。

以上是关于oracle怎样查询数据库函数是不是被执行的主要内容,如果未能解决你的问题,请参考以下文章

oracle中表A中有若干完全重复的字段,怎样查询出不是重复的信息

怎样查看oracle的优化器参数

oracle存储过程中执行查询sql语句报错

Oracle数据库怎样跨库查询?

oracle怎样查询哪些表分区?

oracle数据库怎样查询用变量表示的字段名?