PL/SQL中引号特殊用法

本文详细介绍了SQL语句中单引号与双引号的使用规则,包括如何正确使用引号来匹配字符串以及如何在引号内使用引号进行转义等技巧,并提供了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.sql语句中是不区分大小写的,但引号中的的字符除外,包括单双引号.sql中单引号相当是其他语言中的双引号.

例如:select * from emp where ename = 'scott'没有结果,select * from emp where ename='SCOTT' 就有结果.

双引号用法就怪异一点.双引号和引号中的字符一起被当作一个标识符.比如我们create table table(ename varchar2(5),age int);

会有错,因为table是关键字.但我们用双引号把关键字引起来就可以用了.create table "table"(ename varchar2(5),age int);

select * from "table";

2.如果在引号中使用引号该咋整呢:(多加一个单引号做转义字符)

用法一:(用两个单引号,注意:可不是双引号喔)

declare

v_name varchar2(10);

v_num number(4);

begin

execute immediate 'select empno from emp where ename=''SCOTT'' ' into v_name;

execute immediate 'insert into emp(ename) values(''arwen'')';

end;

用法二:

select ' I''m arwen' from dual;

结果是:I'm arwen

用法三:(三个单引号,中间加||)

declare

v_name varchar2(10);

v_num number(4);

begin

v_name :='SCOTT';

execute immediate 'select empno from emp where ename='''||v_name||''' ' into v_name;

--execute immediate 'CREATE SEQUENCE '||v_name||' START WITH 1 INCREMENT BY 1'; --直接引用变量

end;

当然这样引号太多了容易让人搞晕,所以还可以用另外的方式实现同样的功能.

declare

v_name varchar2(10);

v_num number(4);

begin

v_name :='SCOTT';

execute immediate 'select empno from emp where ename=:inputName ' into v_name

using v_name;

end;

(补充:在pl sql块中不能直接用DDL,DCL语句)

比如

begin

drop table emp;

end;

就会出错.不过可以通过使用execute immediate使用DDL,DCL.

比如

begin

execute immediate'drop table emp';

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值