-2
我为学生姓名输入使用文本字段输入。我怎样才能自动转换每个字的首字母?以oracle形式输入每个单词大写的第一个字符输入
我为学生姓名输入使用文本字段输入。我怎样才能自动转换每个字的首字母?以oracle形式输入每个单词大写的第一个字符输入
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
严格地说,INITCAP返回与其输入相同的数据类型(必须是“字符类型” - CHAR,VARCHAR2,CLOB等) – mathguy
[INITCAP(https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions065.htm)可以帮助 – Aleksej
你所说的一句话意思? “奥布莱恩”应该是“奥布莱恩”还是“奥布莱恩”?玛丽安妮变成了玛丽安妮还是玛丽安妮?甚至“麦当劳” - 它不应该是“麦当劳”而不是“麦当劳”? – MT0