Comportamento estranho com provider oledb e Pipe Row
20/02/2009
0
Olá, a procedure abaixo deveria apresentar um erro de divisão por zero, sempre que eu a executo. Porém quando eu a executo usando uma conexão via driver oleDB da oracle, o erro só aparece se ela voltar menos de 100 linhas através do pipe row.
Alguém sabe o que é isso ?
create or replace function TestPipeRow(pCount IN NUMBER)
return myType_table pipelined as
vQt NUMBER;
begin
vQt := 1 ;
while(vQt <= pCount)
loop
pipe row(myType(
´HANDLE´,
ltrim(to_char(vQt)),
´ORIGIN´,
´I´));
vQt := vQt + 1 ;
end loop;
vQt := 0 ;
vQt := trunc(10 / vQt) ;
return;
end;
types:
create or replace type myType as object(tColumn VARCHAR2(70), tValue VARCHAR2(2000), tOrigin VARCHAR2(200), tType VARCHAR2(1));
create or replace type myType_table as table of myType;
Alguém sabe o que é isso ?
create or replace function TestPipeRow(pCount IN NUMBER)
return myType_table pipelined as
vQt NUMBER;
begin
vQt := 1 ;
while(vQt <= pCount)
loop
pipe row(myType(
´HANDLE´,
ltrim(to_char(vQt)),
´ORIGIN´,
´I´));
vQt := vQt + 1 ;
end loop;
vQt := 0 ;
vQt := trunc(10 / vQt) ;
return;
end;
types:
create or replace type myType as object(tColumn VARCHAR2(70), tValue VARCHAR2(2000), tOrigin VARCHAR2(200), tType VARCHAR2(1));
create or replace type myType_table as table of myType;
Larini
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)