On Wed, Jan 09, 2002 at 11:21:16PM -0500, Thomas A.Lowery wrote: > A less "Oracle" only solution is to query the table/view in question > using predicate of 1 = 2 > > prepare and execute a statement like this: > select * from view/table where 1 = 2 > Now, if the view is doing A LOT of work behind the scenes, performance > could be questionable. <YMMV> > > In a future release of DBI, the method column_info will provide a > means to check validity. I haven't heard when this release is > scheduled.
A beta release is ---><--- this close, but I still might not have time before I fly off tomorrow for the Perl Whirl. If not then it'll be out in about two weeks. Of course, the column_info method won't work unless the driver also supports it :) Tim. > > Tom > > > > -----Original Message----- > > From: Stan Brown [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, January 09, 2002 1:53 PM > > To: [EMAIL PROTECTED] > > Subject: How to safely check an SQL statement? > > > > > > I'm modifying a script that connects to Oracle to collect data. Previously > > it could only get data from a table, and now I'm adding the ability to get > > data from a view. > > > > Because of the environment it runs in, and the fact that it's configuration > > table driven, on the fly. I need a LOT of error checking. > > > > So that's where it gets interesting. Previously I was able to check for > > existence of the requested table, and column, by checking the appropriate > > > > Now that I'allowing views, the SQL statement can be retrived from the > > "TEXT" collumn of the "ALL_VIEWS" view. However, that does not garunteee > > that the sattement still points to valid table/collumn pairs. > > > > What I have in mind is doing a prepare on this statement, and checking the > > return code. Does this sound like it will catch invalis statements? If so, > > how do I do this safetly without risk of causing the script to bail out on > > an error? > > Oravle system tables. > > > > table tha > > > > -- > Thomas A. Lowery > See DBI/FAQ http://tlowery.hypermart.net > > _________________________________________________________ > Do You Yahoo!? > Get your free @yahoo.com address at http://mail.yahoo.com >
