OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBaseデータベース

SQL - V4.4.2

    OceanBase ロゴ

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについてトラストセンター法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. SQL
    4. V4.4.2
    アイコンOceanBaseデータベース
    SQL - V 4.4.2
    データベース
    • OceanBaseデータベース
    • OceanBase Cloud
    SQL
    KV
    • V 4.4.2
    • V 4.3.5

    データ型の変換ルール

    最終更新日:2026-06-15 02:31:33  更新
    シェア
    このページの内容
    暗黙的なデータ型変換
    データ型の暗黙的変換マトリックス
    暗黙的なデータ型変換の例
    明示的なデータ型変換
    明示的型変換マトリックス
    明示的なデータ型変換の例

    折りたたみ

    シェア

    通常、式には異なるデータ型の値を含めることはできません。式間で計算を可能にするため、OceanBaseデータベースはあるデータ型から別のデータ型への値の暗黙的変換と明示的変換をサポートしています。本記事では主に、データ型の暗黙的および明示的変換ルールについて説明します。

    注意

    OceanBaseデータベースでは、暗黙的または自動的な変換に依存するのではなく、明示的な変換を指定することを推奨します。

    暗黙的なデータ型変換

    データ型変換が意味をなす場合、OceanBaseデータベースは値をあるデータ型から別のデータ型に自動的に変換します。

    暗黙的なデータ型変換のルールは以下のとおりです:

    • INSERT および UPDATE 操作を実行する際、OceanBaseデータベースは変数の値を影響を受ける列の型に変換します。

    • SELECT FROM 操作を実行する際、OceanBaseデータベースは列のデータ型をターゲット変数の型に変換します。

    • 文字値と数値を比較する場合、OceanBaseデータベースは文字値を数値に変換します。

    • 数値を処理する際、OceanBaseデータベースは精度と小数点以下の桁数を調整します。これによって生じる数値データ型は、元のテーブルで見つかった数値データ型とは異なります。

    • 文字値または NUMBER 値と浮動小数点数との間の変換は不正確になる可能性があります。これは、文字型と NUMBER 値型が十進精度を用いて数値を表現するのに対し、浮動小数点数は二進精度を用いるためです。

    • CLOB 値を文字型(例えば VARCHAR2)に変換する場合、または BLOB を RAW データに変換する場合。変換対象のデータがターゲットデータ型より大きい場合、データベースはエラーメッセージを返します。

    • タイムスタンプ値を DATE 値に変換する過程で、タイムスタンプ値の小数秒部分は切り捨てられ、四捨五入されます。

    • BINARY_FLOAT から BINARY_DOUBLE への変換は正確です。

    • BINARY_DOUBLE の精度位数が BINARY_FLOAT がサポートする精度位数を超える場合、BINARY_DOUBLE を BINARY_FLOAT に変換すると不正確になります。

    • 文字値と DATE 値を比較する場合、OceanBaseデータベースは文字データを DATE 型に変換します。

    • 赋値操作を行う際、OceanBaseデータベースは等号の右側の値を左側の代入先のデータ型に変換します。

    • 結合操作を行う際、OceanBaseデータベースは非文字型を文字型または国別文字型に変換します。

    データ型の暗黙的変換マトリックス

    次の表は、すべてのデータ型の暗黙的変換マトリックスです。変換の方向や文脈を考慮する必要はありません。

    説明

    "-"は変換がサポートされていないことを示します。

    データ型
    CHAR
    VARCHAR
    VARCHAR2
    NCHAR
    NVARCHAR2
    DATE
    TIMESTAMP
    INTERVAL
    NUMBER
    FLOAT
    BINARY_FLOAT
    BINARY_DOUBLE
    RAW
    CLOB
    BLOB
    CHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
    VARCHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
    VARCHAR2 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
    NCHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
    NVARCHAR2 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
    DATE Yes Yes Yes Yes Yes Yes Yes - - - - - - - -
    TIMESTAMP Yes Yes Yes Yes Yes Yes Yes - - - - - - - -
    INTERVAL Yes Yes Yes Yes Yes Yes - Yes - - - - - - -
    NUMBER Yes Yes Yes Yes Yes - - - Yes Yes Yes Yes - - -
    FLOAT Yes Yes Yes Yes Yes Yes - - Yes Yes Yes Yes - - -
    BINARY_FLOAT Yes Yes Yes Yes Yes Yes - - Yes Yes Yes Yes - - -
    BINARY_DOUBLE Yes Yes Yes Yes Yes Yes - - Yes Yes Yes Yes - - -
    RAW Yes Yes Yes Yes Yes - - - - - - - Yes - -
    CLOB Yes Yes Yes Yes Yes Yes - - - - - - - Yes -
    BLOB - - - - - - - - - - - - Yes - Yes

    1 RAW を INTERVAL に直接変換することはできませんが、UTL_RAW.CAST_TO_VARCHAR2([RAW]) を使用して RAW を VARCHAR2 に変換し、その後得られた VARCHAR2 値を INTERVAL に変換することはできます。

    暗黙的なデータ型変換の例

    • 以下の例文を実行すると、OceanBaseは暗黙的なデータ型変換を使用して 'james' を数値型に変換しようとしますが、変換は失敗し、エラーが発生します。

      obclient> SELECT 5 * 10 + 'james' FROM DUAL;
      ORA-01722: invalid number
      
    • 文字列 '2' を CHAR 型から数値型 2 へ暗黙的に変換し、計算結果は 52 となります。

      obclient> SELECT 5 * 10 + '2' FROM  DUAL;
      +----------+
      | 5*10+'2' |
      +----------+
      |       52 |
      +----------+
      1 row in set
      

    明示的なデータ型変換

    SQL変換関数を使用してデータ型を変換できます。SQL関数は、あるデータ型を別のデータ型に明示的に変換します。

    明示的型変換マトリックス

    データ型
    CHAR
    NCHAR
    NVARCHAR2
    VARCHAR2
    VARCHAR
    NUMBER
    FLOAT
    BINARY_FLOAT
    BINARY_DOUBLE
    DATE
    TIMESTAMP
    INTERVAL
    RAW
    BLOB
    CLOB
    CHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    NCHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    NVARCHAR2 Yes Yes Yes Yes Yes Yes Yes Yes Yes - - - Yes - -
    VARCHAR2 Yes Yes Yes Yes Yes Yes Yes Yes Yes - - - Yes - -
    VARCHAR Yes Yes Yes Yes Yes Yes Yes Yes Yes - - - Yes - -
    NUMBER - Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    FLOAT - Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    BINARY_FLOAT - Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    BINARY_DOUBLE - Yes Yes Yes Yes Yes Yes Yes Yes - - - - - -
    DATE - Yes Yes Yes Yes - - - - Yes Yes - - - -
    TIMESTAMP - Yes Yes Yes Yes - - - - Yes Yes - - - -
    INTERVAL - Yes Yes Yes Yes - - - - - - Yes - - -
    RAW Yes Yes Yes Yes Yes - - - - - - - Yes - -
    BLOB - - - - - - - - - - - - - Yes -
    CLOB Yes Yes Yes Yes Yes - - - - - - - - - -

    明示的なデータ型変換の例

    現在時刻を TO_CHAR 関数を使用して明示的に指定された形式に変換して出力します。

    obclient> SELECT TO_CHAR(SYSDATE, 'YYYY_MM_DD') FROM DUAL;
    +-------------------------------+
    | TO_CHAR(SYSDATE,'YYYY_MM_DD') |
    +-------------------------------+
    | 2021_11_30                    |
    +-------------------------------+
    1 row in set
    

    前のトピック

    データ型の優先順位
    最後

    次のトピック

    データ変換におけるセキュリティ上の注意事項
    次
    このページの内容
    暗黙的なデータ型変換
    データ型の暗黙的変換マトリックス
    暗黙的なデータ型変換の例
    明示的なデータ型変換
    明示的型変換マトリックス
    明示的なデータ型変換の例