[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Weblogic, Windows 2000, Solaris and Oracle UTF8 Exception



Scott,

Did you change driver types? Different Oracle drivers have different
characteristics.

Randy


On 29 May 2001 12:45:38 -0400, Scott Rogers wrote:
> All,
> 
> I am using an Oracle function to obfuscate some data.  When I call the
> function from my Windows 2000 box running Weblogic6.0, it works fine.
> 
> When I call the function from my Solaris box, I receive the following
> stacktrace:
> 
> java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv
>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
>         at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:775)
>         at
> oracle.jdbc.dbaccess.DBConversion.failUTF8Conv(DBConversion.java:1746)
>         at
> oracle.jdbc.dbaccess.DBConversion.utf8BytesToJavaChars(DBConversion.java:158
> 5)
>         at
> oracle.jdbc.dbaccess.DBConversion.utf8BytesToString(DBConversion.java:1445)
>         at
> oracle.jdbc.dbaccess.DBConversion.CharBytesToString(DBConversion.java:384)
>         at
> oracle.jdbc.driver.OracleStatement.getStringValue(OracleStatement.java:2466)
>         at
> oracle.jdbc.driver.OracleCallableStatement.getString(OracleCallableStatement
> .java:398)
> 
> 
> The source code is very simple:
> 
>  CallableStatement cstmt = null;
>  cstmt = conn.prepareCall("{? = call a2wcrypto.decrypt(?,?)}");
> 
>      cstmt.setString(3,"asdfghjk");
>      cstmt.registerOutParameter(1,Types.VARCHAR);
> 
>      data  = StupidUtil.makeStringMultipleOfEightBytes(data);
>      cstmt.setString(2,data); // data to encrypt/decrypt
> 
>      cstmt.execute();
> 
>     String result = cstmt.getString(1);
> 
> 
> Any ideas?
> 
> Scott Rogers
> 
>