ホームページ データベース mysql チュートリアル [置顶] ORACLE编程的套路字符串分解

[置顶] ORACLE编程的套路字符串分解

Jun 07, 2016 pm 02:51 PM
oracle 壊す プログラミング 上にピンで留める

作 者按,字符串分解在ORACLE编程中可用于词、字的解析,继而可实现单词搜索的合并,为基础代码。 代码如下,作者保留所有权。 create or replace function FUN_STRING_SPLIT ( v_string IN VARCHAR2, v_sep IN VARCHAR2) return fs.stringList IS/*********

者按,字符串分解在ORACLE编程中可用于词、字的解析,继而可实现单词搜索的合并,为基础代码。

代码如下,作者保留所有权。

create or replace function FUN_STRING_SPLIT (
       v_string IN VARCHAR2, 
       v_sep IN VARCHAR2)
  return fs.stringList IS
/***************************************************************************/
/*                                                                         */
/* 字符串分割函数 for ORACLE                                               */
/* @param v_string 母字符串                                                   */
/* @param v_sep 分隔符                                                     */
/* @return                字符串列表                                       */
/*   TYPE stringList IS TABLE OF VARCHAR2(256) INDEX BY BINARY_INTEGER;    */
/* @author foolstudio@qq.com                                               */
/* All rights reserved. 未经许可,不得用于商业用途                         */
/*                                                                         */
/***************************************************************************/

  --分隔符长度
  C_LEN int;
  --删除空格后的字符串
  v_str varchar2(256);
  --分隔符位置
  v_pos int;
  --子字符串
  v_sub varchar2(256);
  --数组计数器
  v_i int;
  --结果
  Result fs.stringList;

BEGIN

   v_str := TRIM(v_string);
   --dbms_output.put_line(v_str);
   v_pos := INSTR(v_str, v_sep);
   v_i := 0;
   C_LEN := LENGTH(v_sep);

   --无匹配,整字符串返回
   IF v_pos  0 THEN
      Result(v_i) := v_str;
      return Result;
   END IF;

   WHILE v_pos > 0 LOOP

      v_sub := SUBSTR(v_str, 0, v_pos-1);

      --添加到结果数组
      IF LENGTH(v_sub) > 0 THEN
         Result(v_i) := v_sub;
         v_i := v_i+1;
      END IF;

      --dbms_output.put_line(v_sub);
      v_str := SUBSTR(v_str, v_pos+C_LEN);
      --dbms_output.put_line(v_str);
      v_pos := INSTR(v_str, v_sep);

   END LOOP;

    --已无匹配,剩余字符串添加到结果数组
    IF LENGTH(v_str) > 0 THEN
       Result(v_i) := v_str;
    END IF;

    --调试输出结果
    dbms_output.put_line('列表项数量: '||result.count() );
    dbms_output.put_line('--['||v_string||'] split by ['||v_sep||']--');
    v_i := 0;
    FOR v_i IN 0..(result.count()-1) LOOP
        dbms_output.put_line('('||v_i||'): '||result(v_i) );
   end loop;

   --返回结果数组
   return  Result;

END FUN_STRING_SPLIT;
ログイン後にコピー

代码注释相当详细,不再对代码进行解释。

经测试,代码支持ORACLE 10及以上版本。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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: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のインストールをアンインストールする方法は失敗しました Oracleのインストールをアンインストールする方法は失敗しました Apr 11, 2025 pm 08:24 PM

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

オラクルで時間を取得する方法 オラクルで時間を取得する方法 Apr 11, 2025 pm 08:09 PM

Oracleで時間を取得するには、次の方法があります。Current_Timestamp:現在のシステム時間を秒に正確に返します。 systimestamp:current_timestampよりも正確で、ナノ秒。 sysdate:時間部分を除く現在のシステム日付を返します。 to_char(sysdate、 'yyy-mm-dd hh24:mi:ss'):現在のシステムの日付と時刻を特定の形式に変換します。抽出:1年、月、時間など、時間の値から特定の部分を抽出します。

Oracleデータベースをインポートする方法 Oracleデータベースをインポートする方法 Apr 11, 2025 pm 08:06 PM

データインポート方法:1。SQLLOADERユーティリティを使用します。データファイルを準備し、制御ファイルを作成し、SQLLoaderを実行します。 2。IMP/EXPツールを使用します。データをエクスポートし、データをインポートします。ヒント:1。ビッグデータセットに推奨されるSQL*ローダー。 2。ターゲットテーブルが存在する必要があり、列定義が一致します。 3。インポート後、データの整合性を検証する必要があります。

Oracle Loopでカーソルを作成する方法 Oracle Loopでカーソルを作成する方法 Apr 12, 2025 am 06:18 AM

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

Oracleのユーザーをセットアップする方法 Oracleのユーザーをセットアップする方法 Apr 11, 2025 pm 08:21 PM

Oracleでユーザーを作成するには、次の手順に従ってください。Createユーザーステートメントを使用して新しいユーザーを作成します。助成金ステートメントを使用して必要な権限を付与します。オプション:リソースステートメントを使用してクォータを設定します。デフォルトの役割や一時テーブルスペースなど、他のオプションを構成します。

See all articles