- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的字符串:str:='ac_Abc.88,ac_Abc.99,ac_Abc.77'。我需要在用逗号 (,) 拆分后获取第一个元素。所以我像这样使用:
str VARCHAR2(500);
dbms_utility.comma_to_table
( list => regexp_replace(str,'(^|,)','\1')
, tablen => l_count
, tab => l_array
);
我收到以下错误:
ORA-20001: comma-separated list invalid near bc.88
ORA-06512: at "SYS.DBMS_UTILITY", line 239
ORA-06512: at "SYS.DBMS_UTILITY", line 272
但是如果我有这样的字符串,str:='ac_Abc88,ac_Abc99,ac_Abc77',同样的方法工作正常并给我预期的结果。
所以我想有些东西需要更正以考虑“。”作为常规字符。你能建议我如何解决这个问题吗?
最佳答案
参见 How to split comma delimited string into rows
<强>1。 REGEXP_SUBSTR 方法
SQL> WITH DATA AS(
2 SELECT 'ac_Abc.88,ac_Abc.99,ac_Abc.77' str FROM dual)
3 SELECT regexp_substr(str,'[^,]+',1,level) str
4 FROM DATA
5 CONNECT BY regexp_substr(str, '[^,]+', 1, level) IS NOT NULL
6 /
STR
-----------------------------
ac_Abc.88
ac_Abc.99
ac_Abc.77
SQL>
<强>2。 XML 方法
SQL> SELECT EXTRACT (VALUE (d), '//row/text()').getstringval () str
2 FROM
3 (SELECT XMLTYPE ( '<rows><row>'
4 || REPLACE ('ac_Abc.88,ac_Abc.99,ac_Abc.77', ',', '</row><row>')
5 || '</row></rows>' ) AS xmlval
6 FROM DUAL
7 ) x,
8 TABLE (XMLSEQUENCE (EXTRACT (x.xmlval, '/rows/row'))) d
9 /
STR
--------------------
ac_Abc.88
ac_Abc.99
ac_Abc.77
<强>3。表函数
SQL> CREATE TYPE test_type
2 AS
3 TABLE OF VARCHAR2(100)
4 /
Type created.
SQL>
SQL> CREATE OR REPLACE
2 FUNCTION comma_to_table(
3 p_list IN VARCHAR2)
4 RETURN test_type
5 AS
6 l_string VARCHAR2(32767) := p_list || ',';
7 l_comma_index PLS_INTEGER;
8 l_index PLS_INTEGER := 1;
9 l_tab test_type := test_type();
10 BEGIN
11 LOOP
12 l_comma_index := INSTR(l_string, ',', l_index);
13 EXIT
14 WHEN l_comma_index = 0;
15 l_tab.EXTEND;
16 l_tab(l_tab.COUNT) := SUBSTR(l_string, l_index, l_comma_index - l_index);
17 l_index := l_comma_index + 1;
18 END LOOP;
19 RETURN l_tab;
20 END comma_to_table;
21 /
Function created.
SQL> sho err
No errors.
SQL>
SQL> SELECT * FROM TABLE(comma_to_table('ac_Abc.88,ac_Abc.99,ac_Abc.77'))
2 /
COLUMN_VALUE
--------------------------------------------------------------------------------
ac_Abc.88
ac_Abc.99
ac_Abc.77
SQL>
<强>4。流水线函数
SQL> CREATE OR REPLACE
2 FUNCTION comma_to_table(
3 p_list IN VARCHAR2)
4 RETURN test_type PIPELINED
5 AS
6 l_string LONG := p_list || ',';
7 l_comma_index PLS_INTEGER;
8 l_index PLS_INTEGER := 1;
9 BEGIN
10 LOOP
11 l_comma_index := INSTR(l_string, ',', l_index);
12 EXIT
13 WHEN l_comma_index = 0;
14 PIPE ROW ( SUBSTR(l_string, l_index, l_comma_index - l_index) );
15 l_index := l_comma_index + 1;
16 END LOOP;
17 RETURN;
18 END comma_to_table;
19 /
Function created.
SQL> sho err
No errors.
SQL>
SQL> SELECT * FROM TABLE(comma_to_table('ac_Abc.88,ac_Abc.99,ac_Abc.77'))
2 /
COLUMN_VALUE
--------------------------------------------------------------------------------
ac_Abc.88
ac_Abc.99
ac_Abc.77
关于sql - 获取 "comma-separated list near ' xx.yy'无效"与 dbms_utility.comma_to_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273042/
编辑:在我的示例中,=> 表示“评估为”,而 -> 表示“扩展到 macroexpand-1” . 我正在努力研究 Common Lisp 中的嵌套反引号,我想我已经非常接近理解它了,多亏了其他几个
我正在创建一个必须按以下方式格式化的请求字符串: http://staging.myproject.com?tags=tag1,tag2,tag3 在用户编写标签的窗体上有一个 EditText 对话
我的文字如下: "text","1","more, more text","3" 任何人都可以告诉我我必须使用什么正则表达式分隔符才能获得以下内容: text 1 more, more text 3
我有一个像下面这样的字符串 - value1, value2, value3, value4, "value5, 1234", value6, value7, "value8", value9, "v
我有一个用户表,其中包含一列(例如兴趣),以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,13
我有一个用户表,其中包含一列(比如兴趣),其中以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,1
因此,我有一个值为“app、beta、theta”的单元格,我想查看填充有上述单元格的列是否包含我的单元格值。例如:AA 列有这些单元格:“app”; “theta,应用程序”; “theta,app
以这个小示例代码为例: struct Test{ operator int() const{ return 0; } }; Test test(){ retur
我需要一个代码来计算 Richtextbox 行中有多少个逗号。如果有 4 个或更多逗号,则执行某些操作,否则删除行。 最佳答案 这是强制性的 LINQ 答案: Dim cnt As Integer
我正在查看字符串是否有逗号。 假设我有两个用户名“David, Boon”和“David Blind”。 我需要根据用户名中是否存在“,”的条件编写一个 if 循环。有没有办法检查? .Net 中的包
我正在使用FCSA Number处理 AngularJS 中的小数输入。 如果我使用 maxDecimals 选项,它几乎可以按预期工作。对于两位小数,“100.333”等输入将转换为“100.33”
我现在如何在 Elixir 中获得低于字符串的结果。 ['x1', 'x2'] 我尝试使用 enum.join 但没有获得所需的数据 到 'x1,x2' 最佳答案 如果我理解正确,你应该使用Enum.
我现在如何在 Elixir 中获得低于字符串的结果。 ['x1', 'x2'] 我尝试使用 enum.join 但没有获得所需的数据 到 'x1,x2' 最佳答案 如果我理解正确,你应该使用Enum.
我有用逗号分隔的字符串。 首先,我想检查是否包含逗号的字符串。 在我的应用程序中,字符串如下所示: NSString *str=@"1,2,3"; 如何检查它是否包含逗号? 最佳答案 我使用以下
我正在尝试解决逗号代码项目以自动执行无聊的事情。我在第一个 if 语句方面遇到了麻烦。我正在尝试输出字符串:“苹果、香蕉、 bean 腐和猫”。由于某种原因,它跳过了列表中的第一项。 编辑:本教程没有
我正在尝试创建一个 onkeydown() 函数,强制文本输入字段中逗号 (",") 后的所有字母大写。 我知道我可以使用这个函数将所有字母变为大写: function makeUppercase(f
我有以下代码。 $(document).ready(function(){ $('input[type="checkbox"]').click(function(){ elem =
使用 JavaScript,什么是将点替换为逗号的正确方法(对于欧盟货币),例如: 2000.65 将是 2000,65 而不是 2,000.65 39.20 将是 39,20 我不确定 cost.r
打印中的,加了一个空格 >>> print "a","b" a b 如果我需要一个\t,我放 >>> print "a","\t","b" a b 如何将 , 的输出更改为 \t? 最佳答
我需要检查某些文本是否仅包含小写字母 a-z 和逗号 (",")。 在 Python 中执行此操作的最佳方法是什么? 最佳答案 import re def matches(s): return
我是一名优秀的程序员,十分优秀!