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

OracleのCHARTOROWID()関数

    Oracle Databaseでは、CHARTOROWID() 関数は文字列値をROWIDに変換します データ型。

    構文

    構文は次のようになります:

    CHARTOROWID(char)

    charの場所 CHARの1つです 、VARCHAR2NCHAR 、またはNVARCHAR2 データ型。

    デモンストレーションの例を次に示します。

    SELECT 
        CHARTOROWID('AAATiDAAMAAALKzABa')
    FROM DUAL;

    結果:

    AAATiDAAMAAALKzABa

    これはすばやく簡単な例ですが、最終結果がROWIDタイプであることを示していません。 。

    ただし、次のように確認できます:

    SELECT 
        DUMP('AAATiDAAMAAALKzABa', 17, 1, 5) AS "r1",
        DUMP(CHARTOROWID('AAATiDAAMAAALKzABa'), 17, 1, 5) AS "r2"
    FROM DUAL;

    結果:

                             r1                              r2 
    ___________________________ _______________________________ 
    Typ=96 Len=18: A,A,A,T,i    Typ=69 Len=10: ^@,^A,8,83,^C   

    ここでは、DUMP()を使用しました 最初の5文字の内部表現を取得する関数。

    ただし、重要なことに、この関数はタイプIDも返します。最初のものは96です 、これはCHARのタイプIDです およびNCHAR 、2番目は69 、これはROWIDのタイプIDです 。

    つまり、これはCHARTOROWID() 関数は実際には文字列をROWIDに変換します 。

    データベースの例

    これは、指定されたROWIDに基づいてデータベーステーブルの行を返す例です。 :

    SELECT 
        ROWID,
        FIRST_NAME,
        LAST_NAME
    FROM EMPLOYEES
    WHERE ROWID = CHARTOROWID('AAATiDAAMAAALKzABa');

    結果:

                    ROWID    FIRST_NAME    LAST_NAME 
    _____________________ _____________ ____________ 
    AAATiDAAMAAALKzABa    Timothy       Gates       

    無効なROWID

    無効なROWIDを渡す エラーが発生します:

    SELECT CHARTOROWID('oops')
    FROM DUAL;

    結果:

    Error report -
    ORA-01410: invalid ROWID
    ヌル引数 引数がnullの場合 、結果はnullです :

    SET NULL 'null';
    SELECT CHARTOROWID(null)
    FROM DUAL;

    結果:

    null

    デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECTの結果としてnull値が発生するたびに空白を返します。 ステートメント。

    ただし、SET NULLを使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    無効な引数カウント

    CHARTOROWID()の呼び出し 引数がないとエラーが発生します:

    SELECT CHARTOROWID()
    FROM DUAL;

    結果:

    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"

    また、あまりにも多くの引数を渡すと、エラーが発生します:

    SELECT CHARTOROWID('AAATiDAAMAAALKzABa', 'AAATiDAAMAAALKzABa')
    FROM DUAL;

    結果:

    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"

    1. オプションの依存関係の作成

    2. AmazonAuroraについて知らなかった4つのこと

    3. SQLテーブルからSQLでピボットビューを作成する

    4. 非表示の機能:ファイル間でアクセスオブジェクトをドラッグアンドドロップします