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"