📜  PLSQL 中的内置 Concat函数

📅  最后修改于: 2022-05-13 01:54:42.911000             🧑  作者: Mango

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;  

输出 -