構文 構文 構文 構文
用途 用途 用途 用途
HEXTORAWは、16進数を含むcharをRAW値に変換します。
例 例 例 例
INSERT INTO graphics (raw_column) SELECT HEXTORAW('7D') FROM DUAL;
INITCAP
構文 構文 構文 構文
用途 用途 用途 用途
INITCAPは、各単語の最初の文字を大文字、残りの文字を小文字にしてcharを戻します。
単語は空白または英数字以外の文字で区切ります。
例 例 例 例
SELECT INITCAP('the soap') "Capitals" FROM DUAL;
Capitals ---The Soap
参照 参照参照
参照: 2-15ページの「RAWデータ型とLONG RAWデータ型」および 4-76ページの「RAWTOHEX」を参照してください。
HEXTORAW ( char )
INITCAP ( char )
INSTR
構文 構文 構文 構文
用途 用途 用途 用途
INSTRは、substringのstringを検索します。
■ positionは、Oracleが検索を開始する文字stringの位置を示す整数です。
positionが負の場合、Oracleはstringの終わりから逆方向にカウントおよび検索し ます。
■ occurrenceは、検索するstringが現れたことを示す整数です。occurrenceの値は 正である必要があります。
この関数は、最初に現れた文字stringの位置を示す整数を戻します。positionおよび occurrenceのデフォルト値は1です。この場合、Oracleはstringの最初の文字から検 索を開始します。検索対象はsubstringが最初に現れる位置です。戻り値は、position の値にかかわらず、stringの先頭に関係し、文字で表されます。検索が失敗した
(stringのposition番目の文字の後にsubstringがoccurrence回現れない)場合、
戻り値は0となります。
例 例 例 例
SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" FROM DUAL;
Instring 14
SELECT INSTR('CORPORATE FLOOR','OR', -3, 2)
"Reversed Instring"
FROM DUAL;
Reversed Instring 2
INSTR ( string , substring
, position
, occurrence
)
INSTRB
構文 構文 構文 構文
用途 用途 用途 用途
INSTRBは、positionおよび戻り値が文字ではなくバイトで表されること以外はINSTR と同じです。データベース・キャラクタ・セットがシングルバイトの場合、INSTRBは INSTRと同じです。
例 例 例 例
この例では、データベース・キャラクタ・セットがダブルバイトの場合を想定しています。
SELECT INSTRB('CORPORATE FLOOR','OR',5,2)
"Instring in bytes"
FROM DUAL;
Instring in bytes 27
LAG
構文 構文 構文 構文
参照参照参照
参照: 4-44ページの「INSTR」を参照してください。
参照 参照参照
参照: 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照 してください。
INSTRB ( string , substring
, position
, occurrence
)
LAG ( value_expr
, offset , default
) OVER ( analytic_clause )
用途 用途 用途 用途
LAGは分析関数です。これは、内部結合せずに、表の1つ以上の行へ同時アクセスを行いま す。問合せから戻される一連の行およびカーソル位置を指定すると、LAGは、その位置より 前にある指定された物理オフセットにある行へアクセスします。
offsetを指定しない場合、デフォルト値は1です。オフセットがウィンドウの有効範囲を 超えた場合、オプションのdefault値が戻されます。defaultを指定しない場合、デフォ ルト値はNULLです。
value_exprには、LAGまたは他の分析関数を使用できません。他の組込み関数式はexpr で使用できますが、分析関数はネストできません。
例 例 例 例
次の例では、emp表の各販売員について、その従業員の直前に雇用された従業員の給与を示 します。
SELECT ename, hiredate, sal,
LAG(sal, 1, 0) OVER (ORDER BY hiredate) as prev_sal FROM emp
WHERE job = 'SALESMAN';
ENAME HIREDATE SAL PREV_SAL --- ---ALLEN 20-FEB-81 1600 0 WARD 22-FEB-81 1250 1600 TURNER 08-SEP-81 1500 1250 MARTIN 28-SEP-81 1250 1500