desc: invalid sql statement, answered
- From: richie@xxxxxxxxxxxx (Richie)
- Date: Tue, 27 Dec 2005 14:39:34 -0500
found a google hit finally which answers my question:
From: Bob Showalter [mailto:Bob_Showalter@xxxxxxxxxxxxxxx] Sent: Tuesday, May 31, 2005 2:55 PM To: Christopher L. Hood; beginners@xxxxxxxx Subject: RE: :Oracle problems christopher.l.hood@xxxxxxxxxxx wrote: > All, > > I am getting the following error while trying to use DBD::Oracle: > > DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD > ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at > ../oracleTest.pl line 69.
DESCRIBE is a SQL*Plus command. It is not part of the Oracle SQL language. You need to either query the data dictionary views directly, or use the statement handle attributes like NAME, PRECISION, TYPE, etc. to get this information.
--- Begin Message ---I believe a describe statement is Oracle DDL, but I still failed for both of the ways that I know of to execute sql. There must be something that I am not considering.
- From: listmail <listmail@xxxxxxxxxxxx>
- Date: Tue, 27 Dec 2005 14:35:30 -0500
#!/usr/local/bin/perl #script to demonstate execution failure use strict; use warnings;
use DBI; use DBD::Oracle;
my $username=''; my $password=''; my $dbsid=''; my $cont;
eval {
$cont = DBI->connect('dbi:Oracle:' . lc($dbsid), $username, $password,
{
RaiseError => 1,
AutoCommit => 0,
ora_session_mode => 0
}
);
};
die "problem" if ($@);
my $sth;
#1 eval { $sth = $cont->prepare("desc user_tables"); };
if ($@) {
print "$DBI::errstr";
#exit;
} else {
eval {
$sth->execute;
};
if ($@) {
print "$DBI::errstr";
#exit;
}
}
#2 eval { $cont->do("desc user_tables"); };
if ($@) { print "$DBI::errstr"; #exit; }
# Windows XP # DBI 1.48 # DBD-Oracle 1.16 # ActivePerl 5.8.7 build 813
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "desc user_tables"] at C:\DATA\SESS_KILL\DBD-DBI_testing.pl line 37.
ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) <--print output
DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "desc user_tables"] at C:\DATA\SESS_KILL\DBD-DBI_testing.pl line 48.
ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) <--print output
Issuing rollback() for database handle being DESTROY'd without explicit disconnect().
--- End Message ---
- Prev by Date: desc: invalid sql statement
- Next by Date: Re: desc: invalid sql statement
- Previous by thread: desc: invalid sql statement
- Next by thread: Building DBD::Oracle with the new Oracle Express product.
- Index(es):
Relevant Pages
|