Oracle で VARCHAR を個々の列に分割する
VARCHAR 文字列を個別の列に分割するのは、構造化テキストを含むデータを処理する場合の一般的なタスクです。この記事では、varchar 列から特定の部分文字列を抽出し、それらを個別の列に割り当てるソリューションを提供します。
戻り値に「D7ERROR username」のような文字列が含まれる特定の例に対処するには、次のクエリを使用できます。 :
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one, SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two FROM YOUR_TABLE t
このクエリは、SUBSTR 関数と INSTR 関数を利用して、必要な部分文字列を抽出します。 SUBSTR を使用すると、抽出する開始位置と文字数を指定できます。一方、INSTR は、別の文字列内で部分文字列が最初に出現する位置を見つけます。
INSTR 関数を使用して最初のスペース文字を見つけ、次に、適切な位置で SUBSTR を適用すると、「D7ERROR」部分をcol_one列に抽出し、「username」部分をcol_two列に抽出できます。 AS キーワードは、列に適切な名前を付けるために使用されます。
より複雑なシナリオ向けに、Oracle 10g では REGEXP_SUBSTR による正規表現サポートが導入され、正規表現に基づいてデータを抽出する際の柔軟性が向上しました。
以上がOracle で VARCHAR 列を複数の列に分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。