你做了一个修改INSTR函数(Oracle SQL)的函数: 当找不到空格字符时,我得到字符串的长度而不是'0'。
它编译但是当我尝试执行它时,我收到ORA-06550错误(如果我没错,那就是编译错误)。
我试过这个函数作为一个程序,它运行得很好......所以我不明白为什么它不想执行。
你能帮助我吗?
CREATE OR REPLACE FUNCTION "INSTR2" (str varchar2) RETURN NUMBER AS
pos number(4,0) := 0;
BEGIN
select INSTR(str, ' ') into pos from dual;
if (pos = 0) then
select to_number(length(str)) into pos from dual;
return pos;
else
return pos;
end if;
END INSTR2;
非常感谢,
R.L。
答案 0 :(得分:1)
好吧,Oracle(look, here it is)中已经有一个名为INSTR2
的内置函数。
我刚刚使用其他名称编写了您的函数,但它确实有效。所以代码是有效的,你只需要为它选择名称。
显然,Oracle会将INSTR2
解析为内置函数,尽管您现在在自己的架构中具有此类名称的函数(我无法在文档中找到它的原因,但这种行为并不奇怪)。并且INSTR2
需要的参数多于您的实现。这会导致运行时错误。
答案 1 :(得分:1)
创建或替换
<div class="container">
<div class="inner">
<div class="item">
<h3>Item 1</h3>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
</ul>
</div>
<div class="item">
<h3>Item 2</h3>
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum</li>
</ul>
</div>
<div class="item">
<h3>Item 3</h3>
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
</ul>
</div>
<div class="item">
<h3>Item 4</h3>
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
</ul>
</div>
</div>
</div>
你不需要sql操作,你可以通过简单的pl / sql操作来实现它,它会更快