`
cd0281
  • 浏览: 122568 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

将字符串转换成TABLE返回函数(oracle)

阅读更多
CREATE OR REPLACE FUNCTION str2list (
   p_string    IN   VARCHAR2,
   p_string2   IN   VARCHAR2 DEFAULT NULL,
   p_sep       IN   VARCHAR2 DEFAULT ','
)
   RETURN tabletype
AS
/******************************************************************************
   AUTHOR:     
   PURPOSE:    用于将一字符串转换成一个table
   NOTES:     可以通过传入的顺序进行排序  调用举例:select a.*  from table (str2List(replace('''a'',''b'',''b'',7782,7788,7369,7499,7521,7566,7654,7698','''','')) ) a

   TABLE REFERENCES:
   VIEW REFERENCES:

******************************************************************************/
   v_str    LONG      DEFAULT p_string || p_sep;
   v_str2   LONG      DEFAULT p_string2 || p_sep;
   v_n      NUMBER;
   v_n2     NUMBER;
   v_data   tabletype := tabletype ();
BEGIN
   LOOP
      v_n := TO_NUMBER (INSTR (v_str, p_sep));
      v_n2 := TO_NUMBER (INSTR (v_str2, p_sep));
      EXIT WHEN (NVL (v_n, 0) = 0);
      v_data.EXTEND;
      v_data (v_data.COUNT) :=
         rectype (v_data.COUNT,
                  LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1))),
                  LTRIM (RTRIM (SUBSTR (v_str2, 1, v_n2 - 1)))
                 );
      v_str := SUBSTR (v_str, v_n + 1);
      v_str2 := SUBSTR (v_str2, v_n2 + 1);
   END LOOP;

   RETURN v_data;
END; 



方式二:
select regexp_substr('A,B,C,D,E,F,G', '[^,]+', 1, level)
  from dual
connect by level <= length(regexp_replace('A,B,C,D,E,F,G', '[^,]*')) + 1;
分享到:
评论

相关推荐

    oracle通过sql实现字符串转数字oracle函数

    首先,Oracle提供了一个内置函数`TO_NUMBER()`,它专门用于将字符串转换为数字。`TO_NUMBER(string, format_mask)`函数接收两个参数:要转换的字符串和可选的格式掩码。格式掩码允许我们指定字符串中数字的格式,...

    Oracle拆分字符串,字符串分割的函数

    本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, ...

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    Oracle字符串处理函数

    LOWER函数用于将字符串全部转换为小写字母。例如: ``` SQL&gt; select lower('AaBbCcDd') AABBCCDD from dual; AABBCCDD -------- aabbccdd ``` 所有大写字母都被转换成了小写字母。 #### 8. UPPER UPPER函数用于...

    Oracle中实现Split函数功能

    函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,我们可以使用以下 SQL 语句来拆分一个字符串: ``` SELECT * FROM TABLE(f_split...

    oracle分隔字符串函数

    例如,有一个字段存储了这样的字符串:“apple,banana,orange,grape”,我们需要将这个字符串拆分成四个独立的字符串:“apple”、“banana”、“orange”和“grape”。这种情况下,就需要使用到字符串分隔的功能。 ...

    oracle split函数

    本文将详细介绍两种在Oracle中实现字符串分割的方法:第一种是通过创建类型和管道函数的方式;第二种则是通过循环和子字符串处理实现的。 #### 二、第一种实现方式:创建类型和管道函数 ##### 1. 创建类型 `TY_STR...

    Oracle JSON 字符串处理实例

    在实际应用中,我们可能需要将JSON字符串存储在`CLOB`或`BLOB`类型的列中,然后利用Oracle的JSON函数进行读取和操作。例如,`JSON_OBJECT_T`和`JSON_ARRAY_T`是两个实用的类型,它们分别代表JSON对象和数组,可以...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    oracle函数大全

    INITCAP 函数返回字符串,并将字符串的第一个字母变为大写。该函数的语法为 `INITCAP(string)`,其中 `string` 是要处理的字符串。例如,`SELECT INITCAP('smith') FROM DUAL;` 将返回字符串“Smith”。 5. INSTR ...

    Oracle 函数大全[字符串函数,数学函数,日期函数]

    - **功能**:将字符串转换为小写。 - **语法**: - `LOWER(str_expr)` - **示例**: - `SELECT LOWER('AaBbCcDd') AS "AaBbCcDd" FROM DUAL;` - 输出结果: - AaBbCcDd - --- - aabbccdd ##### 8. UPPER - **...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    SQL 字符串分割函数实现多行数据转换 ...通过这个示例,我们可以看到,使用 `StringSplit` 函数可以轻松地将一个字段中的特殊字符分割的字符串转换成多行数据。这个函数可以广泛应用于各种数据库应用场景中。

    oracle函数大全,oracle函数大全,

    4. INITCAP 函数:将字符串中的每个单词首字母转换为大写,其余字母转换为小写。如 INITCAP('smith') 返回 'Smith'。 5. INSTR 函数:在字符串中查找指定子串的起始位置。INSTR('oracle traning', 'ra', 1, 2) 返回...

    oralce字符函数

    Oracle字符函数是数据库管理系统Oracle中处理字符串数据的重要工具,它们用于创建、操作和转换字符串。在Oracle中,字符串函数广泛应用于数据查询、分析和报告。以下是一些常用的Oracle字符串函数的详细说明: 1. ...

    oracle函数

    LOWER 函数将字符串转换为小写。语法为:LOWER(字符串)。示例代码如下: ```sql SELECT LOWER('AaBbCcDd') FROM dual; ``` 结果: aabbccdd 8. UPPER 函数 UPPER 函数将字符串转换为大写。语法为:UPPER(字符串...

    Oracle 行列转换 总结

    例如,使用 REGEXP_SUBSTR 函数可以将一个字符串转换成多个列。 6. 字符串转换成多行 字符串转换成多行是指将一个字符串转换成多行。例如,使用 REGEXP_SUBSTR 函数可以将一个字符串转换成多行。 Oracle 行列转换...

    oracle函数大全及知识点api

    - TO_NUMBER:将字符串转换为数值。 二、Oracle API与函数使用 Oracle API(应用程序编程接口)提供了与数据库交互的接口,包括PL/SQL过程、函数和包。例如,DBMS_OUTPUT包用于在PL/SQL程序中输出信息,DBMS_...

    oracle系统函数大全

    而UPPER函数将字符串转换为大写,如`UPPER('AaBbCcDd')`返回'AABBCCDD'。 8. RPAD和LPAD函数: RPAD在字符串右侧填充指定字符,直到达到指定长度,而LPAD在左侧填充。例如,`RPAD('gao', 10, '*')`返回'gao*****'...

Global site tag (gtag.js) - Google Analytics