データベース内蔵関数-文字列の操作について


Oracleデータベースには、データベース管理者(またはプログラマ)がコード作成能力を迅速に向上させ、複雑な論理を削減するのに多くの時間を費やす内蔵関数があります.この章では、内蔵関数の分岐文字列(1)リンク関数1-concat()の主なフォーマットを以下に示します.
concat(a,b)

aとbが接続され、入力されたことを表し、フィールドが存在する列に出力されます.たとえば、次のようになります.(dualはデータを持たない擬似テーブル、すなわち「空のテーブル」です.)
select concat('   ',',     ') from dual

(2)接続関数2——’|’concat()関数は前期は接続作用に至るが、一定の限界があり、2つの関数しか接続できず、複数の関数を接続できない場合、この関数は友好的にこの問題を解決し、フォーマットは以下の通りである.
   1:   2:   3……………………

では、データベースsqlコンパイルインタフェースでは、次のようになります.
select '  '||'1989-01-01'||'23' from dual

(3)length()文字列の長さを求めるこの関数は、現在の文字列の長さを求めるものであり、そのフォーマットは以下の通りである.
length(char||varchar2);

この関数はすぐに問題を解決しますが、彼にも一定の限界があります.つまり、定長のcharタイプと不定長のvarchar 2タイプです.では、私たちは以下のようにテストすることができます.まず、テーブルを作成し、名前を格納します.違いはデータタイプが違います.
create table o_c_v(
  cname char(20),
  vname varchar2(20)
)

次に、同じ名前を挿入します.例えば、次のようにします.
insert into o_c_v(cname,vname) values('  ','  ');

次に、2つの異なるデータ型の同じ文字列の長さを求めます.コードは次のとおりです.
select length(cname),length(vname) from o_c_v;

1つ目の出力は16で、2つ目の出力は2で、2つ目は私が入力した実際の漢字の長さで、1つ目は何ですか.私の理解によると、残りの記憶空間です.(4)Upper()この関数は、中の文字列のすべてのアルファベットを大文字に変換することです.これはC#,JAVA,javaScrptプログラマが関数のようなものに遭遇したことがあると信じています.例は以下の通りです.
select UPPER('nihaO') from dual

出力結果は「NIHAO」です.(5)lower()この関数の役割は、カッコ内の文字列を小文字に変換することです.例は次のとおりです.
select LOWER('NIHAO wojiushi') from dual

出力の結果は「nihao wojiushi」です.(6)initcap()この関数の主な機能は、括弧内の文字列の各単語の頭文字を大文字にすることであり、プログラミング言語に類似したアルパカ命名法であり、主な例は以下の通りである.
select INITCAP('nihao wojiushi') from dual

出力の結果は「Nihao Wojiushi」です.(7)ltrim(char 1,char 2)この関数の主な機能はchar 1文字列が左から右に遍歴し、各文字がchar 2のいずれかの文字を満たす限り、char 1のある文字がchar 2にないまで削除することである.例は次のとおりです.
select ltrim('abcabcabchabcabcabc','abc') from dual

結果は「habcabcabc」である.(8)rtrim(char 1,char 2)この関数は、上述したltrim関数とは正反対であり、この関数char 1は右から左に遍歴し、その文字がchar 2にも存在する限り削除され、char 1の中でchar 2のいずれかに該当しない文字に遍歴すれば停止する.
select rtrim('abcabcabchabcabcabc','abc') from dual

出力の結果は「abcabcabch」です.(9)trim(char 1 from char 2)この関数の主な機能は、左右を同時にchar 2を遍歴することであり、各文字がchar 1に等しい場合は削除し、この条件を満たさないまで主な例は以下の通りである.
select trim('a' from 'abcabcabchabcabcabc') from dual

結果は、「bcabcabchabcabcabc」である.(10)lpad(str 1,i,char 2)この関数の主な機能は左補位であり、プロセスはstr 1が右から左からカウントを開始し、記す数の結果がiより大きい場合は残りの文字を切り取り(切り捨て)し、そうでなければiより小さい場合は不足した場所でchar 2文字を補い、そうでなければ何の操作も行わない.例は以下の通りである.
select lpad('nihao',10,' ') from dual

(11)rpad(str 1,i,char 2)この関数もlpad関数とは正反対であり,この関数の主な機能はstr 1が左から右にカウントされ,主所の長さがiより小さいと右でchar 2を補う値となり,iより大きいと右の残りの数を遮断する.次に例を示します.
select rpad('nihao',10,'1') from dual

(12)substr(str 1,i,j)この関数の主な機能はstr 1の文字列を切り取ることであり、iはどこから始まり、jは切り取る長さであり、主な例は以下の通りである.
select substr('jeetkundao',2,1) from dual

この関数の実行結果は‘e’である.(13)instr(str 1,str 2.i,j)この関数の主な機能はstr 1にstr 2が存在する位置であり、iはどこから遍歴するのか、jは何回目に現れるのか、彼らの2つのデフォルト値はいずれも1である.(文字列の遍歴は1から始まり、プログラミング言語の遍歴とは異なります).例は次のとおりです.
select instr('inlllininin','in',1,2) from dual

実行結果は6