调用odp驱动时,出现匿名块代码。

[复制链接]
查看11 | 回复8 | 2012-5-21 10:19:41 | 显示全部楼层 |阅读模式
.net执行Adapter.Fill(dt)
出现如下匿名块:
DECLARE tab_name
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
.net执行Adapter.Fill(dt)

出现如下匿名块:
DECLARE
tab_nameVARCHAR2(32);
tab_owner VARCHAR2(32);
syn_nameVARCHAR2(32);
syn_owner VARCHAR2(32);
obj_t VARCHAR2(16);
depth NUMBER;
max_depth NUMBER;
curr_schema VARCHAR2(32);
BEGIN
depth := 0;
max_depth := 10;
tab_name:= :1;
tab_owner := :2;
SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
into curr_schema
FROM DUAL;
IF (tab_owner IS NULL) THEN
tab_owner := curr_schema;
END IF;
LOOP
BEGIN
select ot
into obj_t
FROM (select object_type ot

from all_objects

where object_name = tab_name

and owner = tab_owner)
WHERE ROWNUM
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
说明什么
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
为什么会出现这个匿名块,非常影响性能。如何能够去掉这个匿名块的执行。
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
clark2015 发表于 2015-8-11 16:05
为什么会出现这个匿名块,非常影响性能。如何能够去掉这个匿名块的执行。

你试试能不能修改此匿名块
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
DJQTDJ 发表于 2015-8-11 16:10
你试试能不能修改此匿名块

这个匿名块修改不了,目前发现只有在查询有long数据类型表才会触发执行这个匿名块。如何能对odp进行设置取消这个匿名块的执行。
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
clark2015 发表于 2015-8-12 09:16
这个匿名块修改不了,目前发现只有在查询有long数据类型表才会触发执行这个匿名块。如何能对odp进行设置取 ...

那总会有触发器的把,你试试看看执行驱动的之后,都掉用了哪些程序块,你看看掉没掉用触发器,如果可以的话,可以在触发器里面改
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
DJQTDJ 发表于 2015-8-12 09:20
那总会有触发器的把,你试试看看执行驱动的之后,都掉用了哪些程序块,你看看掉没掉用触发器,如果可以的 ...

查找了一下没有触发器,只有在有long数据类型的表执行查询时出现这个匿名块。
不知道为什么慕名奇妙的出现这个匿名块。
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
clark2015 发表于 2015-8-12 09:36
查找了一下没有触发器,只有在有long数据类型的表执行查询时出现这个匿名块。
不知道为什么慕名奇妙的出 ...

这我就不知道了,问下版主把
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行