ホームページ  >  記事  >  データベース  >  Oracleで文字データを数値データに変換する方法

Oracleで文字データを数値データに変換する方法

PHPz
PHPzオリジナル
2023-04-17 09:19:415416ブラウズ

Oracle データベースは、数値型、文字型、日付型、Blob 型などの豊富なデータ型を備えた非常に人気のあるリレーショナル データベース管理システムです。実際のアプリケーションでは、文字型データを数値型に変換する必要が生じることがよくあります。この記事では、Oracleデータベースで文字データを数値データに変換する方法を紹介します。

Oracle データベースは、整数 (INT)、浮動小数点 (FLOAT)、倍精度 (DOUBLE) などを含む複数の数値型をサポートします。文字データを数値データに変換する必要がある場合、Oracle データベースの組み込み関数 TO_NUMBER() を使用してこれを実現できます。

TO_NUMBER() 関数の構文は次のとおりです。

TO_NUMBER(string, [format], [nls_langage])

このうち、string は文字データを表します。変換する必要がある; format 数値の形式を表します (オプション); nls_ language はロケールを表します (これもオプションです)。

format パラメータが指定されていない場合、Oracle データベースはデフォルトで現在のセッションの数値形式に従って変換を実行します。文字列に $,, などの特殊文字が含まれている場合は、format パラメーターを使用して変換規則を指定する必要があります。

例 1:

最初に文字データを保存するテーブルを作成します:

CREATE TABLE test_number (
id NUMBER(10),
data VARCHAR2( 50)
);

次に、テーブルにデータを挿入します:

INSERT INTO test_number (id, data) VALUES (1, '123');
INSERT INTO test_number (id, データ) VALUES (2, '45.67');
INSERT INTO test_number (id, data) VALUES (3, '-8.9');
INSERT INTO test_number (id, data) VALUES (4, '$1​​23.456');

次に、TO_NUMBER() 関数を使用して文字データを数値データに変換します。

SELECT id, TO_NUMBER(data) AS num FROM test_number;

実行結果は次のとおりです。

ID NUM
1 123
2 45.67
3 -8.9
4 123.456

例 2:

実際のアプリケーションでは、文字データを整数データに変換する必要が生じる場合があります。この場合、format パラメータを使用して変換ルールを指定する必要があります。

たとえば、生徒の成績データを保存するテーブルがあります:

CREATE TABLE test_score (
id NUMBER(10),
name VARCHAR2(50),
スコア VARCHAR2(50)
);

テーブルにデータを挿入します:

INSERT INTO test_score (id, name, core) VALUES (1, 'Zhang San', '90) ' );
INSERT INTO test_score (id, 名前, スコア) VALUES (2, '李思', '85.5');
INSERT INTO test_score (id, 名前, スコア) VALUES (3, '王五' , '78');
INSERT INTO test_score (id, name, core) VALUES (4, 'Zhao Liu', '60 ');

次の SQL ステートメントを使用して、スコア フィールドを整数データに変換:

SELECT id, name, TO_NUMBER(score, '999') AS core_int FROM test_score;

上記の SQL ステートメントでは、'999' はフォーマット文字列を表します。ここで、A 9 はそれぞれ 1 桁を表し、桁数が足りない場合は先頭に 0 が追加されます。したがって、このステートメントは文字データを整数データに変換します。

実行結果は以下の通りです。

ID NAME SCORE_INT
1 Zhang San 90
2 Li Si 85
3 Wang Wu 78
4 Zhao Liu 60

文字列に数字以外の文字が含まれている場合、TO_NUMBER() 関数はエラーを返すことに注意してください。したがって、この関数を使用する場合は、変換される文字列が数値の形式要件を満たしていることを確認する必要があります。そうでない場合は、データ クリーニングに他の関数を使用する必要があります。

概要:

Oracle データベースには、文字データを数値データに変換できる TO_NUMBER() 関数が用意されています。この関数を使用する場合は、変換規則の仕様に注意し、変換される文字列が数値の形式要件を満たしていることを確認する必要があります。この記事では 2 つの例を紹介し、読者の参考になれば幸いです。

以上がOracleで文字データを数値データに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。