日期:2014-05-17  浏览次数:21001 次

请教一个异常:ORA-03113: 通信通道的文件结束
SQL code

CREATE OR REPLACE TYPE test_obj AS OBJECT
(
  c1 NUMBER,
  c2 number
);

CREATE OR REPLACE TYPE test_type AS TABLE OF test_obj;

--创建一个函数
CREATE OR REPLACE FUNCTION testFunc
RETURN test_type PIPELINED
AS
begin
    PIPE ROW(test_obj(1,2));  
    PIPE ROW(test_obj(3,4));    
end;

--测试该函数
select * from table(testFunc());

--创建一个表
create table test_table(col_1 number);
insert into test_table(col_1) values(1);
insert into test_table(col_1) values(2);
insert into test_table(col_1) values(3);

--连接查询  ---------通过
select * from test_table a,table(testFunc())b where a.col_1<=b.c1;

----------下面这句查询报错"ORA-03113: 通信通道的文件结束",并且把test_table清空
--select * from test_table a,table(testFunc())b where a.col_1>=b.c1;



请教:后面那两句为什么使用 <= 条件可以通过,使用 >= 就报“ORA-03113: 通信通道的文件结束”的错误呢?





------解决方案--------------------
http://blog.163.com/ahui_only/blog/static/5795161920071126112548802/