PLSQL 中的内置 Concat函数
先决条件: PLSQL基础
介绍 :
PLSQL 代表“SQL 的过程语言扩展”,用于转换、更新和查询数据库中的数据。它被分组为包含声明和语句的块。并且它与oracle 数据库集成(从版本7 开始)。 PLSQL 背后的主要思想是它添加了一些 SQL 中没有的编程约束。
1.连接函数:
连接意味着将不同的字符串连接起来形成一个新的字符串,或者我们也可以说将一系列或链中的某些东西连接在一起。所以在 PLSQL 中,我们可以使用 concat()函数将各种字符串连接成一个字符串。因此 concat()函数将两个输入作为参数,然后返回附加的字符串。我们也可以用它来连接两个以上的字符串,我们可以在下面的例子中看到它的实现。
Oracle 12c、Oracle 11g、Oracle 10g、Oracle 9i、Oracle 8i 支持此函数。
例子 -
INPUT: STR1='PL' , STR2='SQL'
OUTPUT:PL SQL
INPUT: STR1='KASHYAP' , STR2='SINGH'
OUTPUT:KASHYAP SINGH
INPUT: STR1='GEEKS' , STR2='FOR' , STR3='GEEKS'
OUTPUT:GEEKS FOR GEEKS
句法 -
concat(source1,source2);
使用的参数–
这里source1是第一个字符串, source2是第二个字符串。
上面的函数将返回附加的字符串。
示例 1 –
DECLARE
str1 varchar2(25);
str2 varchar2(25);
res varchar2(25);
BEGIN
str1:='KASHYAP';
str2:='SINGH';
res:=concat(str1,str2);
dbms_output.put_line('FIRST STRING:'||str1);
dbms_output.put_line('SECOND STRING:'||str2);
dbms_output.put_line('RESULT:'||res);
END;
输出 -
示例 2 –
DECLARE
str1 varchar2(25);
str2 varchar2(25);
str3 varchar2(25);
res varchar2(25);
BEGIN
str1:='GEEKS';
str2:='FOR';
str3:='GEEKS';
res:=concat(str1,concat(str2,str3);
dbms_output.put_line('FIRST STRING:'||str1);
dbms_output.put_line('SECOND STRING:'||str2);
dbms_output.put_line('THIRD STRING:'||str3);
dbms_output.put_line('RESULT:'||res);
END;
输出 2 –
2.撰写函数:
- 在 PLSQL 中,字符串实际上是具有可选大小规范的字符字符是字母、空格、数字、特殊字符或所有字符的组合。 Compose函数基本上返回一个 Unicode字符串。
- Unicode 是一种用于处理各种字符的标准。每个符号都有一个代码点(一个数字),这些代码点可以使用各种编码进行编码(转换为字节序列)。
- UTF-8 就是这样一种编码。低码点使用单个字节编码,高码点编码为字节序列。
可以与 compose函数中的其他字符组合的 unistring 值是:
- unistr('\0302') – 抑扬符 ( ^ )
- unistr('\0300') – 重音符 ( ` )
- unistr('\0308') – 元音变音 ( ¨ )
- unistr('\0301') – 重音符号 (´)
- unistr('\0303') – 波浪号 ( ~ )
例子 -
INPUT-COMPOSE('o' || unistr('\0308') )
OUTPUT-ö
INPUT-COMPOSE('a' || unistr('\0302') )
OUTPUT-â
句法 -
COMPOSE(STRING)
使用的参数 –
String –需要生成 Unicode字符串的输入字符串。
上述函数将返回 Unicode 字符串。
示例 1 –
DECLARE
Var1 char:='g';
Var2 char:='f';
Var3 char:='s';
BEGIN
dbms_output.put_line(COMPOSE(Var1 || unistr('\0308' )));
dbms_output.put_line(COMPOSE(Var2 || unistr('\0301' )));
dbms_output.put_line(COMPOSE(Var3 || unistr('\0303' )));
END;
输出 -
示例 2 –
DECLARE
Var1 char:='g';
BEGIN
dbms_output.put_line(COMPOSE(Var1 || unistr('\0301' )));
dbms_output.put_line(COMPOSE(Var1 || unistr('\0302' )));
dbms_output.put_line(COMPOSE(Var1 || unistr('\0303' )));
END;
输出 -