精华内容
下载资源
问答
  • 在Oracle中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义在Oracle中,单引号有两个作用,,一是字符串是由单引号引用,二是转义。单引号的使用...

    在Oracle中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义

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

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

    select '''' from dual ----output:'

    解释:第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解:

    select ' '' ' from dual ----output:'

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

    select 'name'||'''' from dual ----output:name'

    理解:||后面的作为一个字符串,即前后是',中间又是一个密集型单引号串'',因此第一个为转义功能

    select 'name''''' from dual ----output:name''

    理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义 。

    在举几个简单例子:

    一个单引号,是最正常的情况,比如:'asdfas',这代表一个字符串,显示的内容是 asdfas ;

    两个单引号,一般成对出现在一个单引号之内,表示一个单引号之内的单引号,比如

    'sdfs''123''dfsdf',这种字符串显示的时候就是 sdfs'123'dfsdf

    三个或四个单引号的情况是在一个和两个的情况之上发展出来的,比如'asd'''||输入值||'''',它显示的时候内容就是:

    asd'输入值'。

    (把一对两个单引号分开了,一部分在||之前,一部分在||之后)

    (后面四个单引号分开看,中间两个是一对--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号)

    logo.gif

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • SQL中存储过程中SQL语句的单引号和双引号问题郑重声明一下,这篇日志是我Copy的,不是自己写的,我还没那么强!(仔细看一下,有用。)关于SQL语句中的双引号、单引号:(1)先来看一个最简单的SQL语句Insert Into users...

    SQL中存储过程中SQL语句的单引号和双引号问题

    郑重声明一下,这篇日志是我Copy的,不是自己写的,我还没那么强!(仔细看一下,有用。)

    关于SQL语句中的双引号、单引号:

    (1)先来看一个最简单的SQL语句

    Insert Into users(username) values("小王")

    大家来看一下,这是一个标准的SQL语句,因为username是文本型字段,所以字段值两边要加双引号,表示小王是一个字符串。

    (2)可是在ASP中,我们通常这样写

    strSql="Insert Into users(username) values('小王')"

    此时,前后的双引号表示中间是一个字符串。而小王两边的单引号是因为发生了引号嵌套,所以内层引号该为了单引号。

    (3)实际插入时,因为小王通常是从表单中获取的变量,不过因为变量不能直接写入字符串,必须通过连接符和字符串连接在一起,所以要写成如下形式:

    myusername=Request.Form("username")

    ……

    strSql="Insert Into users(username) values('" & myusername & "')"

    很多人此时就糊涂了,为什么其中又有单引号,又有双引号啊。简单的看上面的式子,其实是由如下三部分组成的:

    字符串常数:"Insert Into users(username) values('"

    字符串变量:myusername

    字符串常数:"')"

    直接理解上面的式子可能比较困难,现在我们变量myusername的值代入就能看清楚了。假如myusername="小王",代入:

    strSql="Insert Into users(username) values('" & "小王" & "')"

    然后依次执行其中的连接运算符,结果为:

    strSql="Insert Into users(username) values('小王')"

    这就是(2)中提

    相关文档:

    MySQL中文参考手册- 7 MySQL 语言参考

    DATABASE()

    返回当前的数据库名字。

    mysql> select DATABASE();

    -> 'test'

    如果没有当前的数据库,DATABASE()

    返回空字符串。

    USER()

    SYSTEM_USER() ......

    if object_id('tb') is not null drop table tb

    go

    create table tb([A] varchar(10),[B] int)

    insert tb

    select 'bcd',1 union all

    select 'bcde',2 union all

    select 'cd',3

    go

    个人分析这道题的思路是:

    通过Substring() 来循环分割 B 列下的字符串。。

    --想得到的结果:

    /**

    a    b& ......

    Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));

    int intRandomNumber = rnd.Next();

    &nb ......

    接(一)

    --触发器示例2

    /*

    创建触发器[T_INSERT_卷烟销售表],该触发器较复杂。

    说明: 每当[卷烟库存表]发生 INSERT 动作,则引发该触发器。

    触发器功能: 实现业务规则。

    业务规则: 如果销售的卷烟品牌不存在库存或者库存为零,则返回错误。

    否则则自动减少[卷烟库存表]中对应品牌卷烟的库存数量和库存金� ......

    编辑前言:这个文章我没有测试,但前提条件还是很多,比如一定要有别的程序存在,而且也要用同一个SQLSERVER库,还得假设有注入漏洞。说到底和动网没有什么关系,但因为动网论坛的开放性,让人熟悉了其数据库结构,和程序运作方法。在一步步的攻击中取得管理权限,再一步步的提升权限,如果正好数据库用的是SA帐号,就更是� ......

    展开全文
  • oracle存储过程中单引号及字符串拼接处理 在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 ...
    oracle存储过程中单引号及字符串拼接处理
     
    在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解
     
    1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。     
    select '''' from dual     ----output:'
     解释:第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解:
    select ' '' ' from dual ----output:'
     
    2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。
    select 'name'||'''' from dual ----output:name' 
    理解:||后面的作为一个字符串,即前后是',中间又是一个密集型单引号串'',因此第一个为转义功能
    select 'name''''' from dual ----output:name''
    理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义  。
     
    在举几个简单例子:
     
    一个单引号,是最正常的情况,比如:'asdfas',这代表一个字符串,显示的内容是 asdfas  ;
     
    两个单引号,一般成对出现在一个单引号之内,表示一个单引号之内的单引号,比如
    'sdfs''123''dfsdf',这种字符串显示的时候就是 sdfs'123'dfsdf
     
    三个或四个单引号的情况是在一个和两个的情况之上发展出来的,比如'asd'''||输入值||'''',它显示的时候内容就是:
    asd'输入值'。
    (把一对两个单引号分开了,一部分在||之前,一部分在||之后)
    (后面四个单引号分开看,中间两个是一对--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号)

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24558279/viewspace-2103971/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/24558279/viewspace-2103971/

    展开全文
  • 发送prmMenusList作为整数列表而不是字符串:UPDATE RolesMenus SET Enabled=0 ...如果您的存储过程只进行了更新,我认为您可以编写整个函数,如:Public function enableMenus($selectedMenus, $roleID){$this->...

    发送prmMenusList作为整数列表而不是字符串:

    UPDATE RolesMenus SET Enabled=0 WHERE MenuID IN(1,7,19,20,21,26) AND RoleID = 74;如果您的存储过程只进行了更新,我认为您可以编写整个函数,如:

    Public function enableMenus($selectedMenus, $roleID){

    $this->db->where_in('MenuID', $selectedMenus);

    $this->db->where('RoleID', $roleID);

    $result = $this->db->update('RolesMenus', array( 'Enabled' => 0 ) );

    $tempResult = $result;

    $result->next_result();

    return $tempResult->result();

    }据我所知,直到现在,没有直接的方法将数组传递给存储过程。

    您可以创建另一个存储过程来解析包含id的字符串,创建一个存储数组值的临时表,然后将该临时表作为参数发送到实际的存储过程。

    但是,在我看来,这更令人头痛:

    DELIMITER $$

    DROP PROCEDURE IF EXISTS `YourDB`.`sp_parseIntList` $$

    CREATE DEFINER=`hotstuff`@`%` PROCEDURE `sp_parseIntList`(

    _intlist TEXT )

    BEGIN

    DECLARE comma INT DEFAULT 0;

    DECLARE mylist TEXT DEFAULT _intlist;

    DECLARE temp TEXT DEFAULT '';

    DECLARE strlen int DEFAULT LENGTH(_intlist);

    CREATE TEMPORARY TABLE TempTable (num int) TYPE=INNODB;

    SET comma = LOCATE(',',mylist);

    WHILE strlen > 0 DO

    IF

    comma = 0

    THEN

    SET temp = TRIM(mylist);

    SET mylist = '';

    SET strlen = 0;

    ELSE

    SET temp = TRIM(SUBSTRING(mylist,1,comma));

    SET mylist = TRIM(SUBSTRING(mylist FROM comma+1));

    SET strlen = LENGTH(mylist);

    END IF;

    IF CAST(temp as UNSIGNED) != 0

    THEN

    INSERT INTO TempTable VALUES(CAST(temp as UNSIGNED));

    END IF;

    SET comma = LOCATE(',',mylist);

    END WHILE;

    SELECT * FROM TempTable;

    DROP TEMPORARY TABLE IF EXISTS TempTable;

    END $$

    DELIMITER ;

    展开全文
  • 在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有...
  • 在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有...
  • 存储过程单引号问题

    2012-01-19 09:16:22
    有网友问一个存储过程问题,加上下划线("_")就会报错,测试了一下确实如此,测试环境trace一下,找出原因 SQL> DECLARE 2 v_num number; 3 v_type varchar2(30...
  • 在写SQL分页的存储过程时,我需要这样去调用我的存储过程,参数含义就不用在解释了,就是一般的分页存储过程传参 其中,AND ", "+S_Types+"," LIKE ...请教一下,在存储过程中如何才能有效的使用 单引号 这个东西呢。
  • oracle存储过程单引号拼接和变量拼接 1.单引号的作用:在oracle中单引号主要有两个作用,一是字符串都用单引号引用,例如'abc';二是转义符,转义符在使用时一般会出现多个连在一起的单引号,相对难理解一些。下面...
  • 注意:存储过程中单引号 ,四个单引号 SET @sql = CONCAT('select user_id into ',m_user_id,' from go_user where mobile =','''',p_user_name,'''',' AND password=','''',p_password,'''');  ...
  • HDU 2586http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:求最近祖先节点的权值和 思路:LCA Tarjan算法 #include 基于注解的SpringMVC简单介绍SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先...
  • SQL视图优化改写为存储过程遇到 双引号 单引号问题 核心在于拼接SQL字符串中遇到中文双引号问题:  可以使用系统函数 替换掉set @pageStr = replace(@queryStr,'"','''') 不过更推荐 ...
  • 常用字符串拼接引号处理: select ‘abcdef’ from dual;         输出:abcdef select ‘aaa’‘abcdef’‘bbb’ from dual;       &...
  • 关于怎么在字符串单引号内拼接单引号,可以使用 ''' 三个单引号这种方法,但是拼接过程要检查比较仔细,这里介绍另外一种方法,使用 ASCII 编码,单引号 ' 的编码是39,所以拼接字符串可以这样写 str := 'select * ...
  • 存储过程中 把 逗号替换成 单引号逗号 单引号的形式 chr(39) 单引号chr(34) 双引号 replace('1,2,3',',',chr(39)||','||chr(39))
  • 请教个问题,存储过程中参数,,IN stype VARCHAR(50) 我需要这样使用 where a in(stype) 它默认是 where a in ('1,2,3') ,我现在想要 where a in (1,2,3) 。。。。各位请问这样要怎么处理啊
  • 单引号 ' 的编码是39,所以拼接字符串可以这样写 [sql] view plain copy   str := 'select * from user where name='||chr(39)||zhangsan||chr(39)||' order by id';  ...
  • oracle存储过程转义字符单引号

    千次阅读 2015-09-14 09:54:16
    使用动态SQL时发现的问题, 在字符串中还要使用单引号怎么办呢,使用转义字符,转义字符正是单引号本身 replace(sql,',',''',''')作用应该是把,替换为','
  • 在SQL存储过程中给条件变量加上单引号,不加语句会出问题,以下是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) set @where= '(DATEDIFF(day,'''+CONVERT(varchar...
  • 存储过程中的单引号

    千次阅读 2010-01-03 19:41:00
    1) 可以用表示字符串中的一个单引号, 如:set @var = + xxxx + 执行 Print 结果为 2)用Char(39)代替,如:Select char(39) + xxxx + char(39)结果为 xxxx
  • 刚开始以为是一个单引号,或者是一个双引号, 没想到是两个单引号,郁闷 例如下面 SET @SQLOne = ' INSERT INTO #ddlist(DDGuid,HBGUID,EnumDDLY,DDType,LYDH,DJBH,RQ,SJJE,WLFY,SumMoney,Audit,Auditor,AuditTime,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 425
精华内容 170
关键字:

存储过程单引号