Oracle Databaseでは、ROWIDTOCHAR() 関数はROWIDを変換します VARCHAR2への値 データ型。
構文
構文は次のようになります:
ROWIDTOCHAR(rowid) 例
次に例を示します:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL; 結果:
AAATiBAAMAAAAIDAAE
変換の結果は常に18文字の長さです。
CHARTOROWID()と比較した場合の結果のダンプは次のとおりです。 関数(ROWIDを返します 文字データからの値):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL; 結果:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
69のタイプID ROWIDであることを意味します データ型、およびタイプID 1 これは、VARCHAR2であることを意味します またはNVARCHARCHAR2 。
データベースの例
これは、指定されたROWIDに基づいてデータベーステーブルの行を返す例です。 :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa'; 結果:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
nullの場合 、結果はnullです : SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL; 結果:
null
デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECTの結果としてnull値が発生するたびに空白を返します。 ステートメント。
ただし、SET NULLを使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。
ROWIDTOCHAR()の呼び出し 引数がないとエラーが発生します:
SELECT ROWIDTOCHAR()
FROM DUAL; 結果:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
また、あまりにも多くの引数を渡すと、エラーが発生します:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL; 結果:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"