2016-04-05 53 views
-2

我为学生姓名输入使用文本字段输入。我怎样才能自动转换每个字的首字母?以oracle形式输入每个单词大写的第一个字符输入

+2

[INITCAP(https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions065.htm)可以帮助 – Aleksej

+1

你所说的一句话意思? “奥布莱恩”应该是“奥布莱恩”还是“奥布莱恩”?玛丽安妮变成了玛丽安妮还是玛丽安妮?甚至“麦当劳” - 它不应该是“麦当劳”而不是“麦当劳”? – MT0

回答

3

Oracle documentation

INITCAP返回字符,每个字的大写形式, 以小写所有其他字母的第一个字母。单词由空格或 不以字母数字组成的字符分隔。

SELECT INITCAP('the soap') "Capitals" FROM DUAL; 

Capitals 
--------- 
The Soap 

当然,INITCAP有它自己的规则,所以你需要检查,如果其行为符合您的需求;使用MT0的例子:

SQL> with test(text) as (
    2 select 'o''brien' from dual union all 
    3 select 'mary-anne' from dual union all 
    4 select 'mcdonald' from dual 
    5 ) 
    6 select text, initcap(text) 
    7 from test; 

TEXT  INITCAP(T 
--------- --------- 
o'brien O'Brien 
mary-anne Mary-Anne 
mcdonald Mcdonald 
+0

严格地说,INITCAP返回与其输入相同的数据类型(必须是“字符类型” - CHAR,VARCHAR2,CLOB等) – mathguy

相关问题