web-dev-qa-db-ja.com

Oracleで列の値をCamelCaseに変換する方法は?

Oracle10gで列の値をCamelCaseに変換する方法が必要です。 selectステートメントに沿って実行することを好みますが、関数を使用する必要がある場合は、それでも問題ありません。

アンダースコアをサポートする必要はなく、スペースだけをサポートします。

ありがとう

13
Ayyoudy

initcap()replace() の組み合わせが機能すると思います。

select replace(initcap('hi ben'),' ') from dual;

REPLA
-----
HiBen

これは、すべての単語の最初の文字を大文字にしてから、スペースを何も置き換えないだけです。

最初の文字が数字の場合は明らかに機能しません。

select replace(initcap('go 2stack overflow'),' ') from dual;

REPLACE(INITCAP(
----------------
Go2stackOverflow
40
Ben

それはキャメルケースの私の理解ではありません

select substr(lower('Camel Case means the first char should be lower cased'),1,1)||substr(replace(initcap('Camel Case means the first char should be lower cased'),' '),2) from dual;
camelCaseMeansTheFirstCharShouldBeLowerCased                                    
1 row selected.
0