版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/q947817003/article/details/24419459

客户遇到个问题,描写叙述例如以下:--环境是ORACLE 9.2.0.8

(语句及场景非真实了。网上找的。情况是一致的)
创建了一个DB_LINK连接还有一个Oracle数据库。 select * from tablename@dblinkname;

单句运行没问题,可是把这句SQL写到存储过程内:

create or replace procedure prc_test
is
begin
insert into test
select * from tablename@dblinkname;
commit;
end;
就发生例如以下错误,存储过程编译不通过:

Compilation errors for PROCEDURE prc_test

Error: PL/SQL: ORA-04052: 在查找远程对象 tablename@dblinkname 时出错
       ORA-00604: 递归 SQL 层 1 出现错误
       ORA-03106: 致命的双工通信协议错误
       ORA-02063: 紧接着line(源于XXX(被连接的数据库服务名))
Line: 4
Text: insert into test

Error: PL/SQL: SQL Statement ignored
Line: 4
Text: insert into test
#########################################################

下面metalink上解决这个问题方法,打上相应的补丁就可以

--这里我未打补丁。仅仅是找出原因向客户说明而已。

Subject:  Errors ORA-00604 And ORA-03106 During Procedure Compilation
  Doc ID:  577347.1 Type:  PROBLEM
  Modified Date :  26-MAY-2008 Status:  MODERATED

Applies to:
PL/SQL - Version: 9.2.0.4 to 9.2.0.8
This problem can occur on any platform.
This note applies only if the underlying Oracle Client is below 9.2.0.8 Patch 4

Symptoms
While trying to run pl/sql code involving queries which access remote objects, you may endup getting below errors:

PL/SQL: ORA-04052: error occurred when looking up remote object <object name>
ORA-00604: error occurred at recursive SQL level 1
ORA-03106: fatal two-task communication proto error
ORA-02063: preceding line from AFQ

When the same query is run outside pl/sql block it runs perfectly.

Cause
You are most probably hitting the Bug 5866805.
Bug 5866805 duplicate of Bug 5576340 which is itself a duplicate of Bug 5671074.

Solution
The Bug 5671074 IS fixed IN 9.2 .0 .8 Patch 4 OR above.

通过存储过程运行通过DBLINK的查询语句失败-单个语句成功--ORA-00604的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (12) -----第三章 查询之使用SQL语句

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-2使用原生SQL语句更新 问题 你想在实体框架中使用原生的SQL语句,来更新底层 ...

  2. 如何查找MySQL中查询慢的SQL语句

    如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...

  3. LINQ to SQL 运行时动态构建查询条件

    在进行数据查询时,经常碰到需要动态构建查询条件.使用LINQ实现这个需求可能会比以前拼接SQL语句更麻烦一些.本文介绍了3种运行时动态构建查询条件的方法.本文中的例子最终实现的都是同一个功能,从Nor ...

  4. SQL基本编程,分支语句,循环语句,存储过程,触发器

    基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消 ...

  5. Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?

    Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程?   麦苗答:方法有多种,可以使用DBMS_MET ...

  6. 如何查找MySQL中查询慢的SQL语句(转载)

    转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...

  7. mysql数据库----视图、触发器、存储过程、函数、事务、索引、其他语句

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( S ...

  8. Oracle 子查询(复杂select语句)

    在执行数据操作时,如果某个操作需要依赖于另外一个 select语句的查询结果,那么就可以把 select 语句迁入到该操作语句中,这样就形成了一个子查询.实际应用中,表与表之间相互关联,相互依存,这样 ...

  9. SqlServer存储过程应用二:分页查询数据并动态拼接where条件

    前言 开发中查询功能是贯穿全文的,我们来盘一盘使用存储过程分页查询,并且支持动态拼接where条件. 划重点:支持动态拼接where条件 对存储过程的使用有疑问的同学去[SqlServer存储过程的创 ...

随机推荐

  1. 【LeetCode】two num 利用comparable接口 对对象进行排序

    题目two num 题意:给定一个整数数组和一个目标值.要求在数组中找到两个数.使得它们的和相加等于目标值.而且返回两个数的下标 思路:1.假设使用暴力,时间复杂度为O(n^2) 2.能够先将全部数进 ...

  2. win8 应用商店。 app下载的音乐和视频软件能打开,不能正常播放 解决方法

    win8 应用商店.app下载的音乐和视频软件能打开,不能正常播放 安装完win8之后,下载了PPS,可以正常播放.但是过了几天之后,就不能播放了,又从网络上下载了其他的音乐和视频相关的软件, 都不可 ...

  3. C语言基础(16)-指针

    一.指针的相关概念 1.1 指针变量 指针是一个变量,存放的是一个地址,该地址指向一块内存空间. 例: ; int *p = &a; // 定义一个指针变量p,&符号可以取得一个变量在 ...

  4. PHP图片识别成文字

    http://apistore.baidu.com/apiworks/servicedetail/146.html 分类: php2011-- : 3576人阅读 评论() 收藏 举报 phpfunc ...

  5. Python、Lua和Ruby之优劣

    Python.Lua和Ruby之优劣 Python Python的优点:1.Python比其它语言有更多扩展模块.2.在网上可以找到很多Python教程.不仅如此,还有大量的英文书籍和资料.Pytho ...

  6. phpexcel图形图表(一)入门

    PHPExcel - Excel的PHP处理引擎 PHPExcel 提供了一系列的 PHP语言 类,让你可以轻松地读写操作以下格式的文件:.xls/.xlsx/.csv/.ods/Gnumeric/P ...

  7. SpringBoot对比传统开发以及自身的优缺点

    SpringBoot是伴随着Spring4.0诞生的,继承了Spring的优点,一经推出,引起了巨大的反向:目前Spring Boot的版本为2.1.0,需要Java7及Spring Framewor ...

  8. posix正则表达式说明

    转载自:http://baiy.cn/utils/_regex_doc/index.htm 正则表达式说明 简介 大体来讲,正则表达式的文法分为3种标准:BRE.ERE 和 ARE.其中 BER 和 ...

  9. array_sum的用法

    众所周知,PHP中函数是功能很强大的,那么今天就说下array_sum的功能吧. 函数功能:返回数组中所有值的和. 举例: <?php $a = array(1,2); $b = array_s ...

  10. VIM快速使用

    1.VIM键盘图[转] 2.vi复制多行文本的方法 2.1 方法1:光标放到第6行, 输入:2yy 光标放到第9行, 输入:p 此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第 ...