On 26 May 2014 22:09, <[email protected]> wrote: > > ---- [email protected] wrote: >> >> ---- sebb <[email protected]> wrote: >> > On 25 May 2014 18:19, <[email protected]> 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: [email protected] >> > > For additional commands, e-mail: [email protected] >> > > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [email protected] >> > For additional commands, e-mail: [email protected] >> > >> >> >> 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.
The CALL and SELECT statements have to be done in separate samplers. > Jim --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
