oracle 多个单引号,oracle多个单引号的处理

oracle多个单引号的处理

oracle多个单引号的处理

在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解。

下面转载

1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。

SQL> SELECT '''' from DUAL;

''

--

'

为了证实结果是被第二个单引号转义的第三个单引号(既:SELECT '''' from DUAL;),我们做如下两个测试:

SQL> SELECT ''' from DUAL;

ERROR:

ORA-01756: 括号内的字符串没有正确结束

相信大家对这样的错误不陌生吧

SQL> SELECT 'SDLF from DUAL;

ERROR:

ORA-01756: 括号内的字符串没有正确结束

也就是说,当第二个单引号充当转义角色,第三个单引号被转义,(既:select '' ' from dual;)自然就缺少与第一个单引号匹配的单引号了,出现了孤立的单引号

下面的两个实验就更加支持了上面的结论。

SQL> SELECT ' '' ' from DUAL;

''''

------

'

SQL> SELECT '' '' from DUAL;

SELECT '' '' from DUAL

*

ERROR 位于第 1 行:

ORA-00923: 未找到预期 from 关键字

对于第一个:SELECT ' '' ' from DUAL;

对于第二个:不存在转义。

上面的这两个实验其实也是单引号转义与非转义的一个性质:转义是密集的,也就是说,如果单引号出现在转义的位置上,而该单引号后面紧跟(紧跟的定义为:两个单引号之间是零距离的)的不是单引号,这个时候单引号就不在充当转义的角色,而是与它前面的配对。

2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。

SQL> SELECT 'ORACLE'||'''' from DUAL;

'ORACLE'||''

----------

ORACLE'

个人理解,'ORACLE'||'''' 后面的“''''”应该认为是一个字符串(即前后单引号,中间是“''”串,而中间又是密集单引号,因此第一个为转义功能)

SQL> SELECT 'ORACLE''''' from DUAL;

'ORACLE'''''

------------

ORACLE''

对于第一个,前两个单引号配对,后面四个单引号按照上面�

相关文档:

一 在Oracle中连接数据库

public class Test1 {

public static void main(String[] args) {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection(

&nbs ......

oracle不同版本间数据的导入导出

Oracle的imp/exp组件是我们常用的工具,它的一个操作原则就是向下兼容。下面是据此总结的几个使用规则和相关测试:

规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器

1.1 使用9i客户端通过imp连 ......

NULL指的是空值,或者非法值。

NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致

NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型

NULLIF (expr1, expr2) ->相等返回NULL,不等返回ex ......

oracle10g创建用户

Oracle10g 的创建用户名

1、   linux 下 oracle 的启动

以 oracle 身份登录

启动    lsnrctl start

登录    sqplus /nolog

连接数据库    connect  /as   sysdba

启动数据库    startup

关闭数据库    s ......

先构造一个表:

create table emp2(

id number(2),

name varchar(10),

currdate date,

action varchar2(1)

)

创建触发器:

create or replace trigger d_i_u_emp2

after insert or update or delete on mysort

begin

if inserting then

insert into emp2 values (12,'dog',sysdate,'i');

elsif deleting then ......

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值