小编GWu*_*GWu的帖子

sqlfiddle上的PL/SQL?

有关如何在SQLFiddle中获取PL/SQL的任何线索?

我试过了

begin
 dbms_output.put_line('Hello World');
end;
/
Run Code Online (Sandbox Code Playgroud)

要么

begin
 null; 
end;
/
Run Code Online (Sandbox Code Playgroud)

它适用于SQL*Plus(或TOAD或SQLDeveloper或...),但SQLFiddle只是给了我

ORA-06550: line 2, column 36: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: := . ( % ; : begin dbms_output.put_line('Hello World')
Run Code Online (Sandbox Code Playgroud)

所以似乎有某种PL/SQL引擎到位,但我无法弄清楚如何让它来解析匿名程序单元.

参见例如http://www.sqlfiddle.com/#!4/db36d/4

oracle plsql sqlfiddle

16
推荐指数
1
解决办法
3895
查看次数

在ORACLE中搜索最长前缀的最快方法

我有一个为大量区域定义的电话号码前缀列表(在由gvcode和cgi定义的查询中).我需要有效地找到与给定数字PHONE_NR匹配的最长前缀.

我在字段数字上使用倒置LIKE子句(其中包含格式为+ 48%,+ 49%,+ 1%,+ 1232%等的前缀).

因此我不能在该字段上使用普通索引.

我通过在gvcode和cgi字段上使用IOT(它们是主键的一部分(前两个cols))设法获得了实质性的改进.我还查看了一些oracle文本索引,但找不到匹配表中较长前缀的较长输入的索引.

有没有其他方法来执行比这种方法更快的搜索.

这是一个查询,它给出了所有匹配前缀的列表(我在数字长度后对其进行排序).

  select  t.gvcode,  t.digits
                from NUMBERS t 
                    where 
                        t.gvcode=ZONE_SET_CODE 
                        and t.cgi=cgi_f
                       and ( PHONE_NR like t.digits)
                         order by length(digits) desc 
Run Code Online (Sandbox Code Playgroud)

sql oracle algorithm string-matching

7
推荐指数
1
解决办法
1560
查看次数

标签 统计

oracle ×2

algorithm ×1

plsql ×1

sql ×1

sqlfiddle ×1

string-matching ×1