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