| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> (?) bind variables not helping at all..
im just learning oracle.. (newbie pretty much).. and i was told about
the great and awesome wonders of bind variables.. then how come im
getting this result (from trace file)
----------------->
SELECT ACNO,CHKNO,IPPRECDATE,CUSTID,ASOFDATE,PAIDDATE,AMT,HASDECISION,
ADDITIONALINFO,CPCS,BELOWTHRESH,DECISIONTN
FROM
PNI WHERE HASDECISION LIKE :b1 AND ACNO LIKE :b2 AND CHKNO LIKE :b3
AND IPPRECDATE BETWEEN :b4 AND :b5 ORDER BY IPPRECDATE,ACNO,CHKNO,
HASDEC
call count cpu elapsed disk query current rows
------- ------ ----- -------- ------- ------- -------- ----------
Parse 4 0.00 0.01 0 0 0 0 Execute 4 0.00 0.00 0 0 0 0 Fetch 486 0.46 0.51 117 463 18 4835
------- ------ ----- -------- ------- ------- -------- ----------
total 494 0.46 0.52 117 463 18 4835
Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 84 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
87 SORT ORDER BY
87 TABLE ACCESS FULL PNI
---------------->
am i doing something drastically wrong? i mean i have been using bind variables.. but im still getting a parse/execute ratio of 1 (which i am told, is pretty dam' horrendous)..
the actual stored procedure follows..
help me out somebody...
-tone
-------------store procedure --------------------->
CREATE OR REPLACE PACKAGE BODY testSearch AS
procedure Search ( p_in_acno IN NUMBER,
p_in_chkno IN NUMBER,
p_in_fromdate IN DATE,
p_in_todate IN DATE,
p_in_hasdec IN VARCHAR,
p_out_returncode OUT NUMBER,
p_out_returncursor OUT RETURNCURSOR ) AS
v_hasdec varchar2(1);
v_acno varchar(13);
v_chkno varchar(10);
v_startdate date;
v_enddate date;
BEGIN
if (p_in_hasdec IS NOT NULL) then
v_hasdec := p_in_hasdec;
else
v_hasdec := '%';
end if;
if (p_in_acno IS NOT NULL) then
v_acno := p_in_acno;
else
v_acno := '%';
end if;
if (p_in_chkno IS NOT NULL) then
v_chkno := p_in_chkno;
else
v_chkno := '%';
end if;
if (p_in_fromdate IS NOT NULL) then
v_startdate := p_in_fromdate;
else
v_startdate := TO_DATE('January 15, 2000', 'Month dd, YYYY');
end if;
if (p_in_todate IS NOT NULL) then
v_enddate := p_in_todate;
else
v_enddate := SYSDATE+1;
end if;
p_out_returncode := 0;
open p_out_returncursor for SELECT
acno ,
chkno ,
ipprecdate ,
custid ,
asofdate ,
paiddate ,
amt ,
hasdec ,
additionalinfo ,
cpcs ,
belowthresh ,
decisiontn
FROM test
WHERE
hasdec like v_hasdec
AND acno like v_acno
AND chkno like v_chkno
AND ipprecdate between
TRUNC(v_startdate)
and
TRUNC(v_enddate)
order by ipprecdate, acno, chkno, hasdec;
exception
WHEN OTHERS THEN p_out_returncode := 8;
END Search;
END testSearch;
/
-----------------end stored proc------------->
Received on Mon Aug 26 2002 - 16:00:45 CDT
![]() |
![]() |