1) The problem is exactly what the error message says; you have a numeric
placeholder ':3' and a named placeholder ':nav_rowid'.  Once you settle on
one type or the other, the error will go away.

2) Either wrap the $dbh->do with an eval{} block or call prepare() and
execute() explicitly.  I strongly recommend that you do something to report
errors or you will have no idea what is causing some explain plans to
silently fail.

You didn't say how you are turning off PrintErrors and RaiseErrors.
--
Mac :})
** I normally forward private questions to the appropriate mail list. **
Ask Smarter: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Give a hobbit a fish and he eats fish for a day.
Give a hobbit a ring and he eats fish for an age.
----- Original Message -----
From: "Shao, Chunning" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, March 04, 2002 07:49
Subject: Error in explain plan


But in perl,

$sql_explain = "explain plan set statement_id = 'SQL' into
system.plan_table for
 update roadway_alias a set a.alias =:3 where rowid = :nav_rowid";
$dbh->do($sql_explain);

I got the following error message,
------------------------------------------------------------
Can't mix placeholder styles (:foo/:1) at
/usr/local/lib/perl5/site_perl/5.6.0/sun4-solaris/DBD/Oracle.pm line
293.
--------------------------------------------------------------
The worst thing is , even though I turned RaiseError off, the script
still failed, cause all the other sql statement not explained.

My question is,
1) What causes this problem?  Is there any patch to fix the problem?

2)If this statement can not be explained, how can i make the perl script
to continue to go on?  I have already turn off the RaiseError and
PrintError


Reply via email to