Skip to content

SqlParameter name lower case conversion in CallMetaDataContext causes error. [SPR-7658] #12314

@spring-projects-issues

Description

@spring-projects-issues

Abdurrahman Sahin opened SPR-7658 and commented

There is a lower case conversion in the following function of CallMetaDataContext.

I think lower case conversion is unnecassary or should be revised.
I have Oracle 10g+Tomcat 6 + JDK 6.0.12 environment
Oracle database NLS_LANG is Turkish_Turkey
Regional Settings is set to Turkey.
by default oracle db keeps object names in uppercase.

a procedure parameter named INSTITUTION is converted to "ınstıtutıon" (please note there isn't dot ) by CallMetaDataContext, then procedure call with parameter name "ınstıtutıon" fails, since parameter named "ınstıtutıon" is not found.

The whole problem is caused by ignoring following Turkish case conversion rule.

The turkish letter "I" is represended in lower case as "ı" (without dot)
The turkish letter "İ" (with dot above) is represended in lower case as "i" (with dot)
The turkish letter "I" and "İ" are not the same.
The turkish letter "ı" and "i" are not the same.

As a sequence I think case conversion should not be done for parameter matching.

public Map<String, Object> matchInParameterValuesWithCallParameters(Map<Strin g, Object> inParameters)


Affects: 2.5 final

Reference URL: http://forum.springsource.org/showthread.php?t=96819

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Labels

    in: dataIssues in data modules (jdbc, orm, oxm, tx)type: bugA general bug

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions