sql >> データベース >  >> RDS >> Oracle

OracleのROWIDTOCHAR()関数

    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"

    1. postgreSQLで変数を使用してリターンタイプを指定しないことは可能ですか?

    2. 2018年のレビュー:見逃した可能性のある7つのMariaDBマイルストーン

    3. OracleEBS監査の設定方法

    4. 選択クエリで自動インクリメントフィールドを生成する方法