PL-SQL-字符串

  • 时间:
  • 浏览:66
  • 来源:it300
PL/SQL中的字符串实际上是具有可选大小规范的字符序列。这些字符可以是数字、字母、空白、特殊字符或所有字符的组合。PL/SQL提供了三种字符串

  • 固定长度字符串在这种字符串中,程序员在声明字符串时指定长度。字符串用与指定长度相同的空格右填充。

  • 可变长度字符串在这种字符串中,指定字符串的最大长度为32767,并且不发生填充。

  • 字符大对象(CLOB)这些是可长达128TB的可变长度字符串。

  • PL/SQL字符串可以是变量或文本。字符串文字包含在引号内。例如,

    '这是一个字符串字面值。'或'hello world'

    要在字符串字面值中包括一个引号,您需要相邻地键入两个单引号。例如,

    '这不是它看起来的样子'

    声明字符串变量

    Oracle数据库提供了许多字符串数据类型,例如CHAR、NCHAR、VARCHAR2、NVARCHAR2、CLOB和NCLOB。以'N'为前缀的数据类型是存储Unicode字符数据的'national character set'数据类型。

    如果需要声明可变长度字符串,则必须提供该字符串的最大长度。例如,VARCHAR2数据类型。下面的示例说明声明和使用一些字符串变量

     DECLARE name varchar2(20);company varchar2(30);.ductionclob;choice char(1);BEGIN name: ='John Smith';'company: ='Infotech';.: ='Hello!我是Infotech的John Smith.';.: ='y';IF.='y'THEN THEN dbms_output.put_line(名称);dbms_output.put_line(公司);dbms_output.put_line(简介);END IF;END;/

    当在SQL提示符处执行上述代码时,它产生以下结果

    John Smith I你好!我是Infotech公司的约翰·史密斯.PL/SQL过程成功完成

    若要声明固定长度字符串,请使用CHAR数据类型。在这里,您不必为固定长度变量指定最大长度。如果不考虑长度约束,Oracle数据库将自动使用所需的最大长度。以下两个声明是相同的

    red_flag CHAR(1):='Y';red_flag CHAR:='Y';

    PL/SQL String Functions,运算符

    PL/SQL提供连接运算符(|)。下表提供了由PL/SQL

    <表类="表边界表">>S.No>第第样式>>S.No<>第第样式>功能与目的>>目的>>>>目的>><<<<中文>>tr>>tr>>td>td样式="文本对齐:居中>>td样式>>文本对齐:居中;垂直对齐:居中; >1>1>>td>>td>>td>>td>>td>>td>td>>td>>td>>转换字符的ASCII值

    >>>2>2垂直对齐:垂直对齐:中间;>>2>td>>CONCAT(x,y>CONCAT>CONCAT>>CONCAT(x>x>x>y>y>y>CONCAT>CONCAT>CONCAT>CONCAT>CONCAT>CONCACACACACACA

    将字符串x和y连接起来并返回附加的字符串。

    4>4垂直对齐:垂直对齐>中间; >>4<44中4

    INITCAP

    INITCAP(x>>b>INSTR(x,查找_字符串[,开始查找_字符串[,开始查找_字符串[,开始时将x中每个单词x[,发生];

    搜索find_stri在x中返回并返回其发生位置并返回其发生位置。

    <td样式>td样式>>td>td>td>td>td>>td>td>>td>td>td>td>td>td>td>td>td>td>td>td>td>td>td>“>7

    长度(x)>

    >

    >返回x。

    >>td>td>文本对齐:中心;垂直对齐>垂直对齐:居中;>8<>td>>td>>td>>td>>td>>td>td>>td>>td>>td>td>td>>td>中竖直对齐>中间;p>>中度;“>9

    LOWER(x);

    >将x中的字母转换为小写字母并返回字符串。

    >10中间;>>10<>10

    LPAD(x,宽度[,pad_string]]]]];/b>/b>>p>>

    >

    >

    Pads>11中

    LTRIM(x[,trim_字符串]);>>p>

    >p>>p>>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>如果x匹配NaN特殊值(不是数字),则返回值,否则返回x

    >13>td>>13<>td>>13中垂直对齐:中间>>13>td>td>td>td>td>td>td>>td>td>td>td>>td>td>td>>td>td>>td>>td>td>>td>>p>>P>相同作为INITCAP函数,除了可以使用NLSSORT指定的不同排序方法外,由NLSSORT指定的不同排序方法。

    除外与LOWER函数相同

    >15垂直对齐:中间; >>15<15

    >NLS_UPPER(x);>b>>NLS_UPPER(p>>

    >

    >p>

    >相同作为UPPER函数,除了可以使用NLSSORTSORT指定的不同排序方法外,可以使用NLS gn:中心;垂直对齐:中间“>16

    NLSSORT(x);

    改变字符的分类方法。必须在任何NLS函数之前指定;否则,将使用默认排序。

    >17垂直对齐:居中;>17中>nVL(x,值);>NVL(x,值;>>>>>>>>>>>>>>x>x>值>>>>>>>>>>>如果x<>x<>x<>x<>x<>x18

    NVL2(x,value1,value2);

    返回值1,如果x不为空;如果x为空,则返回值2;如果x为空;如果x为空,则返回值1;如果x x为空,则返回值1;如果x x x为x为空,则返回值2返回值2。

    >p>

    19<>19>19<中>

    >p>

    >REPLACE(x,搜索_字符串,替换_字符串,替换search_string并用._string替换它。

    20

    RPAD(x, width [, pad_string]);

    Pads x to the right.

    21

    RTRIM(x [, trim_string]);

    Trims x from the right.

    >24>td>垂直对齐:中间;>>24>td>td>td>td>td>td>>td>>td>>-“>25>中间对齐;>25

    >TRIM([trim_char FROM)x);>trim>trim>trim>triM>TRIM>TRIM>2 5

    td>td>

    p>b>td>td>p>>b>x>>x>>x>>x>>x>>x>>x>>x>>>>>>x>>>>>>>>>>>>>>p>>p>>p>>p>>p>>p>x为大写,并返回字符串。

    现在让我们计算几个ex理解概念

    示例1

    DECLARE greetings varchar2(11):='hello world';BEGIN dbms_output.put_line(UPPER(greetings));dbms_output.put_line(LOWER(greetings));dbms_output.put_line(INITCAP(greetings));/*检索字符串*/中的第一个字符dbms_output.put_line(SUBSTR(greetings,1,1));/*检索字符串*/dbms_output.put_line(SUBSTR(greetings,-1,1))中的最后一个字符;/*检索五个字符,从第七个位置开始。*/dbms_output.put_line(SUBSTR(greetings,7,5));/*检索字符串的其余部分,从第二个位置开始。*/dbms_output.put_line(SUBSTR(greetings,2));/*查找第一个“e”*/dbms_output.put_line(INSTR(greetings,'e'));END;/

    当在SQL提示符处执行上述代码时,它产生以下结果

    HELLO WORLD h ello World Hello World h World d World ello World World2.PL/SQL程序成功完成。

    例2

    <例2<预分类="预打印的名片">预分类=>DECLARE问候语varchar2(30):='...Hello世界.........';BEGIN dbms dbms dbms_dbms_dbms_dbms_dbms_output.put_put_line dbms_dbms_dbms_output.put_line(RTRIM(问候语,'.'''''''''));dbdbms_output_output_output_output_put_put_line(LTRIM_output_output_output_put_put_put_put_put_put_put_put_line(LTRIM(LTRIM(LTRIM(LTRIM当上述情况发生时代码在SQL提示符下执行,它产生以下结果

    ...Hello World_Hello World.....Hello World PL/SQL过程成功完成。

    猜你喜欢

    希腊最高法院批准俄罗斯对比特币嫌疑人的请求

    希腊最高法院批准俄罗斯对比特币嫌疑人的请求希腊最高法院上周五表示,一名据称使用比特币数字货币洗钱40亿美元的俄罗斯人应该被引渡到俄罗斯,一位法院消息人士说。AlexanderV

    2019-02-01

    塑造美国网络防御的创造性破坏和自满情绪

    塑造美国网络防御的创造性破坏和自满情绪创造性的破坏,思维的范式转换取代现有的秩序,可能是一个难以捉摸的概念,但它作为人类行为驱动力的力量是不可否认的。在硅谷和其他美国的高层科技

    2019-02-01

    为什么我(非常)担心PRISM

    为什么我(非常)担心PRISM美国国家安全局正在利用我们的数字生活,监控语音电话,电子邮件,社交媒体以及谁知道什么。美国国家安全局方面的人说,这是为了国家安全;它已经停止了恐怖

    2019-02-01

    先发优势:为什么新的恶意软件最初会打败反恐

    先发优势:为什么新的恶意软件最初会打败反恐虽然反病毒解决方案可以有效对抗广泛使用的恶意软件,但是有一个很好的机会,新的恶意软件会躲过那些解决方案。最近有重大安全事件的报告激增,

    2019-02-01

    台湾银行抢劫与朝鲜黑客有关

    台湾银行抢劫与朝鲜黑客有关最近针对台湾一家银行的网络抢劫事件已被安全研究人员联系到一个据信在朝鲜境外活动的臭名昭着的威胁组织。黑客利用SWIFT全球金融网络大致窃取来自台湾远东

    2019-02-01