Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Error in calling external procedure

Re: Error in calling external procedure

From: Putz Ronald <rputz_at_etm-ag.com>
Date: Thu, 4 Mar 2004 12:33:34 +0100
Message-ID: <1078400010.957905@newsmaster-03.atnet.at>


HY!

I´ve never tried it with byte. But with char* and string it should work. Otherwise you can try to change the in out prefix.

Ronny

"Lisa Tang" <ltang7_at_yahoo.com> schrieb im Newsbeitrag news:cc133b78.0402182303.30ac160c_at_posting.google.com...
> Hi,
>
> I am trying to call a C function from PL/SQL and I encounter
> "ORA-06525 Length Mismatch for CHAR or RAW data". Following is the
> information:
>
> C function in util.dll:
> INT Scramble(BYTE *input,
> BYTE *key,
> INT which,
> BYTE *output);
>
> I create the library and PL/SQL body using the following script:
> CREATE OR REPLACE LIBRARY util
> AS
> 'E:\Develop\test\util.dll';
>
> CREATE OR REPLACE FUNCTION Scramble
> (plaintext IN RAW,
> key IN RAW,
> which IN PLS_INTEGER,
> ciphertext IN OUT RAW)
> RETURN PLS_INTEGER
> IS EXTERNAL
> LIBRARY util
> NAME "Scramble"
> LANGUAGE C;
>
> When I test the above function Scramble using the following PL/SQL, I
> receive the error at the beginning of this message.
>
> DECLARE
> rvalue PLS_INTEGER;
> plaintext RAW(8);
> key RAW(16);
> which PLS_INTEGER;
> ciphertext RAW(8);
> BEGIN
> plaintext := '12345678';
> key := '1234567812345678';
> which := 0;
>
> -- SQL error at the following line!!!!!
> -- "ORA-06525 Length Mismatch for CHAR or RAW data"
> rvalue := SCRAMBLE(plaintext,
> key,
> which,
> ciphertext);
> END;
>
>
> Could anyone give me any idea what's wrong with the above code. Thank
> you.
>
> Cheers,
> LTANG7
Received on Thu Mar 04 2004 - 05:33:34 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US