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"