jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <oh...@cox.net>
Subject Re: JDBC Request causes java.sql.SQLException: ORA-00900: invalid SQL statement
Date Mon, 26 May 2014 21:09:52 GMT

---- ohaya@cox.net wrote: 
> 
> ---- sebb <sebbaz@gmail.com> wrote: 
> > On 25 May 2014 18:19,  <ohaya@cox.net> wrote:
> > > Hi,
> > >
> > > I am trying to use Jmeter 2.11 to load test against Oracle database.
> > >
> > > I can use a SELECT query in the JDBC Request and that works fine, but when
I try the following:
> > >
> > > exec DBMS_SESSION.set_identifier('frank')
> > >
> > > I get:
> > >
> > > Response message: java.sql.SQLException: ORA-00900: invalid SQL statement
> > >
> > > However, if I run that EXEC command using sqlplus, it works fine.
> > >
> > > Does Jmeter not allow using the EXEC command in a JDBC request?
> > 
> > An EXEC command is not a Select statement; it is not in fact standard SQL.
> > 
> > However, according to
> > 
> > http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm#JJDBC28075
> > 
> > the Oracle JDBC driver supports them using the syntax
> > 
> > {call DBMS_SESSION.set_identifier('frank')}
> > 
> > This needs to be invoked in JMeter using the Callable Statement option.
> > 
> > > I tried putting this in a BEGIN...END:
> > >
> > > BEGIN
> > > exec DBMS_SESSION.set_identifier('frank');
> > > select * from employees;
> > > END;
> > >
> > > but then I got:
> > >
> > > Response message: java.sql.SQLException: ORA-06550: line 2, column 6:
> > > PLS-00103: Encountered the symbol "DBMS_SESSION" when expecting one of the
following:
> > >
> > >    := . ( @ % ;
> > > The symbol ":=" was substituted for "DBMS_SESSION" to continue.
> > >
> > > Is there a way that this can be done with Jmeter?
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> > > For additional commands, e-mail: user-help@jmeter.apache.org
> > >
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> > For additional commands, e-mail: user-help@jmeter.apache.org
> > 
> 
> 
> As you suggested, I tried as a Callable Statement:
> 
> {call DBMS_SESSION.set_identifier('jim')}
> 
> and got:
> 
> Thread Name: Thread Group 1-1
> Sample Start: 2014-05-26 00:43:16 EDT
> Load time: 3
> Latency: 1
> Size in bytes: 40
> Headers size in bytes: 0
> Body size in bytes: 40
> Sample Count: 1
> Error Count: 1
> Response code: 72000 1006
> Response message: java.sql.SQLException: ORA-01006: bind variable does not exist
> 
> 
> Response headers:
> oracle.jdbc.driver.OracleConnection@6735fad1
> 
> SampleResult fields:
> ContentType: text/plain
> DataEncoding: UTF-8
> 
> Actually, for the test, I really need to do the DBMS_SESSION.set_identifier, followed
by a "select * from employees".  
> 
> Can I do those in the JDBC Request with the Query Type set to Callable Statement, and
if so, how?
> 
> Thanks,
> Jim


Hi,

I was able to get JUST the DBMS_SESSION.set_identifier to work in the JDBC request by using
a variable instead of literal:

CALL DBMS_SESSION.set_identifier(:xyz)

However, as mentioned earlier, I'd like to do the DBMS_SESSION.set_identifier and then a SELECT,
e.g.:

CALL DBMS_SESSION.set_identifier(:xyz)
select * from employee

However, when I try that in Jmeter, I get:

Response message: java.sql.SQLException: ORA-00933: SQL command not properly ended

I've tried added semi-colon etc to the end, but that didn't work either.

Jim

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org


Mime
View raw message