ホームページ データベース Oracle Oracleで文字列内の一部の文字をインターセプトする方法

Oracleで文字列内の一部の文字をインターセプトする方法

Feb 14, 2022 pm 12:47 PM
oracle インターセプト文字列

Oracle では、Instr() 関数と substr() 関数を使用して、文字列内の文字の一部をインターセプトできます。構文は、「SUBSTR('インターセプトする文字列', インターセプト開始位置, INSTR( '必須インターセプト文字列、'、'検索開始位置'、'出現回数')-1) "。

Oracleで文字列内の一部の文字をインターセプトする方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

oracle はフィールド内の文字列の一部をインターセプトします

Oracle で Instr() 関数と substr() 関数を使用します:

Oracle では、instr 関数を使用して文字列に指定した文字が含まれているかどうかを判定できます。

構文は次のとおりです:

instr(sourceString,destString,start,appearPosition).   
instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')
ログイン後にコピー

ここで、

  • sourceString はソース文字列を表し、

  • destString はソース文字列を表します。ソース文字列内で検索される部分文字列。

  • start は検索の開始位置を表します。このパラメータはオプションで、デフォルトは 1 です。

  • AppearancePosition は、ソース文字から destString が出現する回数を表します。このパラメータもオプションで、デフォルトは 1 です。

start の値が負の数の場合、それは意味します。検索は右から左に実行されますが、位置データは依然として左から右に計算されます。

戻り値は、見つかった文字列の位置です。

instr 関数の場合、よく次のように使用します。文字列から指定された部分文字列の位置を見つけます。例:

SQL> select instr('yuechaotianyuechao','ao') position from dual;
 POSITION
 ----------
 6
ログイン後にコピー

7 番目の文字から検索を開始します

SQL> select instr('yuechaotianyuechao','ao', 7) position from dual;
 POSITION
 ----------
 17
ログイン後にコピー

最初の文字から開始し、部分文字列の 2 番目の出現を検索します

SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual;
 POSITION
 ----------
 17
ログイン後にコピー

instr 関数の場合、次のようにします。多くの場合、次のように使用します。文字列内の指定された部分文字列の位置を検索します。例:

SQL> select instr('abcdefgh','de') position from dual; 
POSITION 
---------- 
4
ログイン後にコピー

1から始まると、dは4番目にランクされるので、4が返されます

SQL>select instr('abcdefghbc','bc',3) position from dual; 
POSITION 
---------- 
9
ログイン後にコピー

3番目の文字から始まる3番目の文字はcなので、3から始まる文字列 bcを検索し、return 9

substr 関数を使用すると、文字列内の指定された開始位置と長さの文字列を取得します。デフォルトは開始位置から末尾までの部分文字列です。

 substr( string, start_position, [ length ] )       substr('目标字符串',开始位置,长度)
ログイン後にコピー

例:

      substr('This is a test', 6, 2)     would return 'is' 
      substr('This is a test', 6)     would return 'is a test' 
      substr('TechOnTheNet', -3, 3)     would return 'Net' 
      substr('TechOnTheNet', -6, 3)     would return 'The'select substr('Thisisatest', -4, 2) value from dual
ログイン後にコピー

SUBSTR() function

1. 目的: 指定された文字式またはメモ フィールドの部分文字列から文字列を返します。

2. 文法形式:

substr(string string, int a, int b);
substr(string string, int a) ; 
ログイン後にコピー

形式 1:

1. string インターセプトされる文字列

2. a インターセプトされる文字列の開始位置string (注: a が 0 または 1 の場合、インターセプトは最初のビットから開始されます)

3. b インターセプトする文字列の長さ

形式 2:

1. string インターセプトする必要がある文字列

2. a は、a 番目の文字から始まる後続のすべての文字列をインターセプトするものとして理解できます。

oracle は文字列

C3411.907w15 を文字列 C3411 のドットの前でインターセプトします SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15 , '.', 1, 1) - 1)

SELECT SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1)
  FROM DUAL
ログイン後にコピー

C3411.907w15 のドットの後の文字列 907w15 をインターセプト SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.' , 1) , 1) 1)

SELECT SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1)
  FROM DUAL
ログイン後にコピー

プロジェクト適用例:

元の文字列:

オリジナル 7つありますフィールドに「_」が入っています。最後の「_」以降の文字列を取り出したいのですが、どうすれば解決できますか?

2 つのステップ:

最初のステップは、Instr() 関数を使用して 7 番目の「_」文字を見つけることです:

select instr('Q room Netグループ_証券部門_華南地区_深セン市華_営業部_南山前海地区_前海中央エリア_前海第五支店','_', 1, 7) fdisplayname from SHENZHENJM1222.B

または:

select instr('Qfang.com グループ_証券部門_華南地区_深セン市華_事業部_南山前海地区_前海センターエリア_前海五份支店', '_', -1, 1) fdisplayname FROM SHENZHENJM1222.B

#どちらも同じ効果です 下の -1 は右から数えることを意味します 1 は最初の "_" を取得することを意味します

得られた結果は図のとおりです:

ステップ 2、substr() 関数を使用して必要なフィールドを取得します。

select substr (

fdisplayname,instr(fdisplayname,'_',-1 ,1) 1) SHENZHENJM1222 の fdisplayname.B

fdisplayname: を表します。フィールド名、メタ文字列に相当します

導入部分に重点を置きます

1

1 は、ターゲット文字列 "_" の後の最初の文字列のインターセプトを開始することを意味します。

さまざまな数値の状況を見てみましょう:

#select substr(

fdisplayname ,instr( fdisplayname,'_',-1,1) 1) SHENZHENJM1222 からの fdisplayname.B

instr(fdisplayname,'_',-1,1) の 1 の意味を見てみましょう。

# 推奨チュートリアル: 「

Oracle チュートリアル

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleの表空間サイズを確認する方法 Oracleの表空間サイズを確認する方法 Apr 11, 2025 pm 08:15 PM

Oracle Tablespaceサイズを照会するには、次の手順に従ってください。クエリを実行して、TableSpace名を決定します。DBA_TABLESPACesからTableSpace_Nameを選択します。クエリを実行してテーブルスペースのサイズをクエリします:sum(bytes)をtotal_size、sum(bytes_free)asavail_space、sum(bytes) - sum(bytes_free)as sum(bytes_free)as dba_data_files from tablespace_

Oracleのインストールをアンインストールする方法は失敗しました Oracleのインストールをアンインストールする方法は失敗しました Apr 11, 2025 pm 08:24 PM

Oracleインストール障害のためのアンインストールメソッド:Oracleサービスを閉じ、Oracleプログラムファイルとレジストリキーを削除し、Oracle環境変数をアンインストールし、コンピューターを再起動します。アンインストールが失敗した場合、Oracle Universal Uninstallツールを使用して手動でアンインストールできます。

Oracleビューを暗号化する方法 Oracleビューを暗号化する方法 Apr 11, 2025 pm 08:30 PM

Oracle View暗号化により、ビュー内のデータを暗号化でき、それにより機密情報のセキュリティが強化されます。手順には以下が含まれます。1)マスター暗号化キー(MEK)の作成。 2)暗号化されたビューを作成し、暗号化されるビューとMEKを指定します。 3)暗号化されたビューにアクセスすることをユーザーに許可します。暗号化されたビューがどのように機能するか:ユーザーが暗号化されたビューを求めてクエリをするとき、OracleはMEKを使用してデータを復号化し、認定ユーザーのみが読み取り可能なデータにアクセスできるようにします。

Oracleのインスタンス名を表示する方法 Oracleのインスタンス名を表示する方法 Apr 11, 2025 pm 08:18 PM

Oracleでインスタンス名を表示するには3つの方法があります。「sqlplus」と「v $ instanceからselect instance_name;」を使用します。」コマンドラインのコマンド。 「show instance_name;」を使用しますSQL*Plusのコマンド。オペレーティングシステムのタスクマネージャー、Oracle Enterprise Manager、またはオペレーティングシステムを介して、環境変数(LinuxのOracle_Sid)を確認してください。

Oracle Cursorを閉じる問題を解決する方法 Oracle Cursorを閉じる問題を解決する方法 Apr 11, 2025 pm 10:18 PM

Oracle Cursorの閉鎖問題を解決する方法には、次のものが含まれます。 Scopeが終了した後に自動的に閉じるように、for update句のカーソルを宣言します。使用句のカーソルを宣言して、関連するPL/SQL変数が閉じられたときに自動的に閉じるようにします。例外処理を使用して、例外の状況でカーソルが閉じていることを確認します。接続プールを使用して、カーソルを自動的に閉じます。自動送信を無効にし、カーソルの閉鎖を遅延させます。

Oracleからすべてのデータを削除する方法 Oracleからすべてのデータを削除する方法 Apr 11, 2025 pm 08:36 PM

Oracleのすべてのデータを削除するには、次の手順が必要です。1。接続を確立します。 2。外部のキーの制約を無効にします。 3.テーブルデータを削除します。 4.トランザクションを送信します。 5.外部キーの制約を有効にします(オプション)。データの損失を防ぐために、実行前にデータベースを必ずバックアップしてください。

無効な数のOracleを確認する方法 無効な数のOracleを確認する方法 Apr 11, 2025 pm 08:27 PM

Oracle無効な数値誤差は、データ型の不一致、数値オーバーフロー、データ変換エラー、またはデータの破損によって引き起こされる場合があります。トラブルシューティング手順には、データ型のチェック、デジタルオーバーフローの検出、データ変換のチェック、データの破損のチェック、nls_numeric_charactersパラメーターの構成、データ検証ロギングの有効化など、他の可能なソリューションの調査が含まれます。

Oracle Dynamic SQLを作成する方法 Oracle Dynamic SQLを作成する方法 Apr 12, 2025 am 06:06 AM

SQLステートメントは、Oracleの動的SQLを使用して、ランタイム入力に基づいて作成および実行できます。手順には、次のものが含まれます。動的に生成されたSQLステートメントを保存するための空の文字列変数を準備します。 executeを即座に使用するか、ステートメントを準備して、動的なSQLステートメントをコンパイルおよび実行します。バインド変数を使用して、ユーザー入力またはその他の動的値を動的SQLに渡します。実行するか、実行するか、動的SQLステートメントを実行します。

See all articles