在 pl/sql 中使用双竖线
The use of double vertical bars in pl/sql
我想找反串程序。我找到了很多示例,但 none 解释了 for 循环中到底发生了什么:
DECLARE
ln_rev_input varchar2(50);
ln_input varchar2(50):= '&input';
BEGIN
FOR i in reverse 1..length(ln_input) LOOP
ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
END LOOP;
dbms_output.put_line(ln_rev_input);
END;
我不明白这一行,尤其是'||'的用法在这个程序中:
ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
我知道这个'||'用于连接字符串,但不明白 ln_rev_input 是如何分配的。
谢谢
Oracle/PLSQL ||
运算符允许您将 2 个或更多字符串连接在一起。
以上代码的作用是反转输入字符串。假设您传递了一个名为 Oracle
的字符串,它的作用是从字符串 Oracle
的末尾开始,使用函数 substr(ln_input, i, 1)
一次获取一个字符并将该字符连接到ln_rev_input
变量中的任何值。
开始时,ln_rev_input
为空,ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
的结果为e
。
当它进入下一次迭代时,字符 l
连接到变量 ln_rev_input
中的任何值,即 e
- 所以这段代码是喜欢
ln_rev_input := 'e' || 'l';
这将导致 ln_rev_input
的值更改为 el
。如此重复 6 次,即字符串的长度 - 我们使用 length(ln_input)
找到 - 最后,ln_rev_input
的值将是 elcarO
.
我想找反串程序。我找到了很多示例,但 none 解释了 for 循环中到底发生了什么:
DECLARE
ln_rev_input varchar2(50);
ln_input varchar2(50):= '&input';
BEGIN
FOR i in reverse 1..length(ln_input) LOOP
ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
END LOOP;
dbms_output.put_line(ln_rev_input);
END;
我不明白这一行,尤其是'||'的用法在这个程序中:
ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
我知道这个'||'用于连接字符串,但不明白 ln_rev_input 是如何分配的。
谢谢
Oracle/PLSQL ||
运算符允许您将 2 个或更多字符串连接在一起。
以上代码的作用是反转输入字符串。假设您传递了一个名为 Oracle
的字符串,它的作用是从字符串 Oracle
的末尾开始,使用函数 substr(ln_input, i, 1)
一次获取一个字符并将该字符连接到ln_rev_input
变量中的任何值。
开始时,ln_rev_input
为空,ln_rev_input := ln_rev_input||substr(ln_input, i, 1);
的结果为e
。
当它进入下一次迭代时,字符 l
连接到变量 ln_rev_input
中的任何值,即 e
- 所以这段代码是喜欢
ln_rev_input := 'e' || 'l';
这将导致 ln_rev_input
的值更改为 el
。如此重复 6 次,即字符串的长度 - 我们使用 length(ln_input)
找到 - 最后,ln_rev_input
的值将是 elcarO
.