db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fernanda Pizzorno <Fernanda.Pizzo...@Sun.COM>
Subject Re: Characters replacement function
Date Wed, 02 Nov 2005 14:31:21 GMT
Oyvind.Bakksjo@Sun.COM wrote:

> Fernanda Pizzorno wrote:
>
>> Hello,
>>
>> Have you tried to create a user defined function for replace? You can 
>> do that using the CREATE FUNCTION statement 
>> (http://db.apache.org/derby/docs/10.1/ref/rrefcreatefunctionstatement.html). 
>> I have tried creating a very simple java method that does the replace 
>> and it seems to work fine.
>>
>> Here is what I tried:
>>
>> 1. Java method
>>    public static String replace (String orgStr, String oldStr, String 
>> newStr) {
>>        return orgStr.replace(oldStr, newStr);
>>    }
>>
>> 2. User defined function
>>    CREATE FUNCTION REPLACE(orgStr VARCHAR(50), oldStr VARCHAR(50), 
>> newStr VARCHAR(50)) RETURNS VARCHAR(50)
>>    PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
>>    EXTERNAL NAME 'StringReplaceTest.replace';
>>
>> 3. Test
>>    ij> values replace('fernanda', 'a', 'e');
>>    1
>>    
>> --------------------------------------------------------------------------------------------------------------------------------

>>
>>    fernende
>
>
> What happens if you execute "values replace('banana', 'an', 'ul')"? 
> How does VARCHAR(50) map to a java char?
>
That's what happens:

ij> values replace('banana', 'an', 'ul');
1
--------------------------------------------------------------------------------------------------------------------------------
bulula

1 row selected

Why should it map to java char?

My intention was use java.lang.String.replace(CharSequence, 
CharSequence) (since 1.5), it would then work with a string of 1 or more 
characters. If instead you want to use java.lang.String.replace(char, 
char), I guess you could just replace strings by chars, and varchars by 
chars where it is needed and it would work, but I have not tried it.

Best regards,

Fernanda

Mime
View raw message