Skip to Main Content

Java and JavaScript in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-00932 when trying to pass ARRAY from Java SP to PL/SQL

588146Jul 18 2007 — edited Jul 23 2007
Hi all

I am trying to pass ARRAYs back and forth between PL/SQL and Java stored procedures. But I keep getting:
ORA-00932: inconsistent datatypes: expected a return value that is an instance of a user defined Java class convertible to an Oracle type got an object that could not be converted

Here's my PL/SQL:
-----------
create or replace type CONTENTP.sentences_array as VARRAY(1000) of CLOB
-- I've also tried .. as TABLE of CLOB and varray/table of VARCHAR2

declare
proc_clob CLOB;
arr SENTENCES_ARRAY;
begin
SELECT document_body
into proc_clob
from documents
where document_id = 618784;

arr := processdocument.sentencesplit (proc_clob);

end;
-----------

PROCESSDOCUMENT package definition:
-----------
CREATE OR REPLACE PACKAGE CONTENTP.PROCESSDOCUMENT AS

FUNCTION sentenceSplit(Param1 CLOB)
return SENTENCES_ARRAY
AS
LANGUAGE java
NAME 'com.contentp.documents.ProcessDocument.sentenceSplit(oracle.sql.CLOB) return oracle.sql.ARRAY';

FUNCTION removeHTML(Param1 CLOB)
return CLOB
AS
LANGUAGE java
NAME 'com.contentp.documents.ProcessDocument.removeHTML(oracle.sql.CLOB) return oracle.sql.CLOB';

end;
/
-----------

Java sentenceSplit code:
-----------
public static oracle.sql.ARRAY sentenceSplit ( CLOB text) throws IOException, SQLException
{
Connection conn = new OracleDriver().defaultConnection();

String[] arrSentences = sent.getsentences ( CLOBtoString (text) );

ArrayDescriptor arrayDesc =
ArrayDescriptor.createDescriptor ("SENTENCES_ARRAY", conn);

ARRAY ARRSentences = new ARRAY (arrayDesc, conn, arrSentences);

return ARRSentences;
}
-----------

I have confirmed that the String[] arrSentences contains a valid string array. So the problem seems to be the creation and passing of ARRSentences.

I have looked at pages and pages of documents and example code, and can't see anything wrong with my declaration of ARRSentences. I'm at a loss to explain what's wrong.


Thanks in advance - any help is much appreciated!
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 20 2007
Added on Jul 18 2007
5 comments
6,991 views