We can say that the string we use is a reserved keyword. In any complex
system we have to have such restriction in order address these kind of
issues.

On Tue, Jan 10, 2017 at 11:23 AM, Malintha Amarasinghe <[email protected]>
wrote:

>
>
> On Tue, Jan 10, 2017 at 11:10 AM, Akalanka Pagoda Arachchi <
> [email protected]> wrote:
>
>> Replacing an empty string with a space is generally a bad practice in
>> database perspective due to few reasons.
>>
>> 1. Issues with visibility (a DBA cannot tell the difference by directly
>> looking at it)
>> 2. As Madhawa pointed out, space is a different character and when we
>> really want to represent a space in the column and differentiate between
>> the empty and the space, it will be impossible.
>> 3. Adds processing complexity
>>
>> The suggestion to use a space for empty strings is actually to denote an
>> empty string by a special character since empty string is not supported in
>> Oracle. Therefore instead of using a meaningless space character which
>> introduces more complexity why not use a special string such as NULL or
>> EMPTY?
>>
> If we select a special string we should ensure that those will never come
> as a user input; I am doubtful we can assume that always.. Otherwise if a
> user give "NULL" as an input, it will come back as "" right?
>
>>
>> Thanks,
>> Akalanka.
>>
>> On Tue, Jan 10, 2017 at 11:01 AM, Madhawa Gunasekara <[email protected]>
>> wrote:
>>
>>> So what will happen if the user sends a space? So It's better to add a
>>> configuration to avoid these situations. then user can handle this. WDYT ?
>>>
>>> On Tue, Jan 10, 2017 at 10:54 AM, Uvindra Dias Jayasinha <
>>> [email protected]> wrote:
>>>
>>>> To be more precise, if a user explicitly sends "" then we will set the
>>>> value to space, enabling us to convert back to "".
>>>>
>>>> But if the field is not set(ignored by the user) then the default NULL
>>>> will be saved. This will make things consistant across all DB's.
>>>>
>>>> On 10 January 2017 at 10:41, Uvindra Dias Jayasinha <[email protected]>
>>>> wrote:
>>>>
>>>>> Note that there is a clear break in the UX of the REST API if we allow
>>>>> pass empty strings to Oracle(due to the conversion to NULL). Oracle treats
>>>>> "" as NULL but this is incorrect in the REST/JSON world.
>>>>>
>>>>> If a user enters an empty string "" they will expect to get "" back,
>>>>> which will not happen with Oracles default behaviour. Therefore in order 
>>>>> to
>>>>> keep consistency of the REST API I dont see an alternative other than
>>>>> having space as the default value. We can get rid of the space when
>>>>> returning by simply trimming the String so we don't need to have any
>>>>> special filtering logic.
>>>>>
>>>>> On 10 January 2017 at 10:34, Akalanka Pagoda Arachchi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> +1 to keep default as NULL instead of a space.
>>>>>>
>>>>>> Having a space will require adding trimming logic to the underlying
>>>>>> code and methods like 'isNullOrEmpty' will bypass this string if there's 
>>>>>> a
>>>>>> space.
>>>>>>
>>>>>> Thanks,
>>>>>> Akalanka.
>>>>>>
>>>>>> On Tue, Jan 10, 2017 at 10:23 AM, Lahiru Cooray <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jan 9, 2017 at 7:54 AM, Isuru Haththotuwa <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jan 6, 2017 at 5:19 PM, Uvindra Dias Jayasinha <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Setting a default value for empty fields being sent seems to be
>>>>>>>>> best.
>>>>>>>>>
>>>>>>>>> Furthermore we can have default values set in our DTO objects in
>>>>>>>>> case a given field is omitted altogether.
>>>>>>>>>
>>>>>>>>> So handling both the above scenarios can overcome the limitation
>>>>>>>>> in Oracle.
>>>>>>>>>
>>>>>>>>> But I dont know if this is good for the REST API user experience,
>>>>>>>>> when retrieving data that contains these default values.
>>>>>>>>>
>>>>>>>> Additionally this could affect the user experience in UIs as well.
>>>>>>>>
>>>>>>>> How about we just keep a default value to NULL in DB level and then
>>>>>>>> filter it from UI? Since anyway Oracle treats zero length String as 
>>>>>>>> NULLs,
>>>>>>>> even if the user enters an empty String it will then be automatically. 
>>>>>>>> The
>>>>>>>> rest API will still return the default value if invoked directly 
>>>>>>>> though.
>>>>>>>>
>>>>>>>
>>>>>>> +1 to keep default as NULL which is more natural
>>>>>>> Further rather than filtering in the UI, how about directly do it in
>>>>>>> the query itself using COALESCE() built-in function (which is an ANSI
>>>>>>> standard and better performing than IS NULL)
>>>>>>>
>>>>>>> eg: SELECT COALESCE(field_name,'')  as field_name  //if the field
>>>>>>> value is null it will map to empty
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>> On 6 January 2017 at 15:28, Tharindu Dharmarathna <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Jan 6, 2017 at 3:26 PM, Tharindu Dharmarathna <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> I faced $Subject in Oracle database while running integration
>>>>>>>>>>> test on C5 on top.
>>>>>>>>>>>
>>>>>>>>>>> *Observation*
>>>>>>>>>>>
>>>>>>>>>>> when insert empty string ("") it was save as null in database.
>>>>>>>>>>>
>>>>>>>>>>> While going through SO I had found [1] , which did happen in
>>>>>>>>>>> oracle database.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> We have come up with several ways to handle empty strings which
>>>>>>>>>>> user sends through the rest api.
>>>>>>>>>>>
>>>>>>>>>>> 1.  Validate the request and send error when giving empty strings
>>>>>>>>>>> 2.  Set default value like "N/A" into the fields which send as
>>>>>>>>>>> empty.
>>>>>>>>>>>
>>>>>>>>>>> Is there any other way to handle this problem ?.
>>>>>>>>>>>
>>>>>>>>>>> [1] - http://stackoverflow.com/questions/13278773/null-vs-empty-
>>>>>>>>>>> string-in-oracle
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Tharindu Dharmarathna*Software Engineer
>>>>>>>>>>> WSO2 Inc.; http://wso2.com
>>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>>
>>>>>>>>>>> mobile: *+94779109091 <+94%2077%20910%209091>*
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> *Tharindu Dharmarathna*Software Engineer
>>>>>>>>>> WSO2 Inc.; http://wso2.com
>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>
>>>>>>>>>> mobile: *+94779109091 <+94%2077%20910%209091>*
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Regards,
>>>>>>>>> Uvindra
>>>>>>>>>
>>>>>>>>> Mobile: 777733962
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thanks and Regards,
>>>>>>>>
>>>>>>>> Isuru H.
>>>>>>>> +94 716 358 048 <+94%2071%20635%208048>* <http://wso2.com/>*
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Dev mailing list
>>>>>>>> [email protected]
>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Lahiru Cooray*
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.;http://wso2.com/
>>>>>>> lean.enterprise.middleware
>>>>>>>
>>>>>>> Mobile: +94 715 654154 <+94%2071%20565%204154>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> [email protected]
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Darshana Akalanka Pagoda Arachchi,*
>>>>>> *Senior Software Engineer, WSO2*
>>>>>> *+94777118016 <+94%2077%20711%208016>*
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Regards,
>>>>> Uvindra
>>>>>
>>>>> Mobile: 777733962
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Uvindra
>>>>
>>>> Mobile: 777733962
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> [email protected]
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> *Madhawa Gunasekara*
>>> Software Engineer
>>> WSO2 Inc.; http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> mobile: +94 719411002 <+94+719411002>
>>> blog: *http://madhawa-gunasekara.blogspot.com
>>> <http://madhawa-gunasekara.blogspot.com>*
>>> linkedin: *http://lk.linkedin.com/in/mgunasekara
>>> <http://lk.linkedin.com/in/mgunasekara>*
>>>
>>
>>
>>
>> --
>> *Darshana Akalanka Pagoda Arachchi,*
>> *Senior Software Engineer, WSO2*
>> *+94777118016 <+94%2077%20711%208016>*
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Malintha Amarasinghe
> Software Engineer
> *WSO2, Inc. - lean | enterprise | middleware*
> http://wso2.com/
>
> Mobile : +94 712383306 <+94%2071%20238%203306>
>



-- 
*Darshana Akalanka Pagoda Arachchi,*
*Senior Software Engineer, WSO2*
*+94777118016*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to