We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now


java.sql.SQLException: Bigger type length than Maximum

Arthur Wang
Arthur Wang asked
Medium Priority
Last Modified: 2011-09-20
00:46:12,171 INFO  [STDOUT] java.sql.SQLException: Bigger type length than Maximum
00:46:12,203 INFO  [STDOUT]     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
00:46:12,234 INFO  [STDOUT]     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
00:46:12,265 INFO  [STDOUT]     at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)
00:46:12,281 INFO  [STDOUT]     at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2231)
00:46:12,312 INFO  [STDOUT]     at oracle.jdbc.driver.T4CMAREngine.unmarshalUB2(T4CMAREngine.java:1048)
00:46:12,343 INFO  [STDOUT]     at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:112)
00:46:12,375 INFO  [STDOUT]     at oracle.jdbc.driver.T4CTTIdcb.receiveFromRefCursor(T4CTTIdcb.java:104)
00:46:12,390 INFO  [STDOUT]     at oracle.jdbc.driver.T4CResultSetAccessor.unmarshalOneRow(T4CResultSetAccessor.java:16
00:46:12,421 INFO  [STDOUT]     at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:788)
00:46:12,453 INFO  [STDOUT]     at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:705)
00:46:12,484 INFO  [STDOUT]     at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:527)
00:46:12,500 INFO  [STDOUT]     at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
00:46:12,531 INFO  [STDOUT]     at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:7
00:46:12,562 INFO  [STDOUT]     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1028)
00:46:12,593 INFO  [STDOUT]     at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.j
00:46:12,625 INFO  [STDOUT]     at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2979
00:46:12,640 INFO  [STDOUT]     at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103
00:46:12,671 INFO  [STDOUT]     at com.mailamerica.wts.DAO.OracleLoginDAO.login(Unknown Source)
00:46:12,703 INFO  [STDOUT]     at com.mailamerica.wts.LoginAction.execute(Unknown Source)
00:46:12,734 INFO  [STDOUT]     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java
00:46:12,750 INFO  [STDOUT]     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
00:46:12,781 INFO  [STDOUT]     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
00:46:12,812 INFO  [STDOUT]     at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
00:46:12,843 INFO  [STDOUT]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
00:46:12,859 INFO  [STDOUT]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
00:46:12,890 INFO  [STDOUT]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterCh
00:46:12,921 INFO  [STDOUT]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java
00:46:12,953 INFO  [STDOUT]     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
00:46:12,968 INFO  [STDOUT]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterCh
00:46:13,000 INFO  [STDOUT]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java
00:46:13,031 INFO  [STDOUT]     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
00:46:13,062 INFO  [STDOUT]     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
00:46:13,078 INFO  [STDOUT]     at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:
00:46:13,109 INFO  [STDOUT]     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationVal
00:46:13,140 INFO  [STDOUT]     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:53)
00:46:13,171 INFO  [STDOUT]     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
00:46:13,187 INFO  [STDOUT]     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
00:46:13,218 INFO  [STDOUT]     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
00:46:13,250 INFO  [STDOUT]     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
00:46:13,281 INFO  [STDOUT]     at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
00:46:13,296 INFO  [STDOUT]     at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
00:46:13,328 INFO  [STDOUT]     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
00:46:13,359 INFO  [STDOUT]     at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
00:46:13,390 INFO  [STDOUT]     at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
00:46:13,406 INFO  [STDOUT]     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
00:46:13,437 INFO  [STDOUT]     at java.lang.Thread.run(Thread.java:595)

my DAO code is like below:

                      conn = OracleDAOFactory.createConnection();
                      String sql =
                      "{ ? = call validateUser( ? , ? ) }";

                      cstmt = conn.prepareCall(sql);
                      cstmt.registerOutParameter(1, OracleTypes.CURSOR);
                      cstmt.setString(2, username);
                      cstmt.setString(3, pswd);
                            rset = (ResultSet)cstmt.getObject(1);

and my validateUser code is like below:

create or replace package types as
type sqlcur is REF cursor;

create or replace function validateUser(
p_username               PRINCIPALS_TABLE.username%type,
p_password            PRINCIPALS_TABLE.password%type
)return types.sqlcur as
c1 types.sqlcur;

v_username               varchar2(64);
v_password            varchar2(64);


v_username  := p_username;
v_password  := p_password;


p.username ,
name_of_role       role ,
name_of_rolegroup  rolegroup ,
principals_table p ,
roles_table r,
rolegroup_info_table rgi,
role_info_table ri
    p.username = v_username
and p.password = v_password
and p.username = r.username
and r.id_of_rolegroup = rgi.id_of_rolegroup
and r.id_of_role  = ri.id_of_role


I don't see any problem here, can anybody help?

Watch Question

try using latest jdbc driver. this seems to be problem with driver and its a known bug.


I did copy the ojdbc14.jar from the lib directory of my oracle 10gr2 rac and put it  into the classpath of the compile server. however, when I print out the version of the jdbc driver, it still shows the version of instead of 10.2. I don't know why! should i also need to include the classpath of ojdbc14.jar in the application server?machine used to compile the java source code is different from the applicaton server machine.


in fact, I just migrated from 10gr1 single node database to 10gr2 rac with two node, and all datafiles are saved by ASM, someone said it's related to characterset of the ASM, not sure if it's the problem of ASM.


I just tried to put the ojdbc14.jar into the classpath of the application server lib directory, then the error message disappear.  I guess that the jdbc driver is loaded dynamically , so it has to be in the classpath of application server, is this the right reason?
the server picks up the classes from the jar which is in classpath.
the jars from the classpath form the runtime environment.
so if u compile the code using new ojdbc14.jar ......then it doesnt work.
u will have to put it in runtime classpath.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts


I just don't understand why some components needs to be in  the classpath of run time enviroment, and some don't . is there any way I can identify this?
Can I know where exactly is the classpath that is mentioned by avinthm ?
I am facing the same issue.

The classpath i am refering to is Runtime classpath. You can use -classpath option with java command to set runtime classpath.

java -classpath <path to jar files> <your class with main method>

documentation : http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/classpath.html
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.