存储过程单引号
参数单引号输入''就可以了 'name like ''%xxx%'''
B. 存储过程中两个单引号和一个单引号的不同
两个单引号引起来的是字符串,你用两个单引号,两个单引号之间的部分是字符串,而两个单引号之外的部分,就是错误了,你这个语句应该是实现一个SQL语句的拼接,其中select top等都是字符串,而你两个单引号在一起,之间的部分是字符串。
C. SQL存储过程,不可以用双引号替换单引号么
不可以的,双引号和单引号的作用不同,双引号是标识符的的界符,单引号是字符串的界符.
比如有表:TABLE
SELECT * FROM "TABLE"
和 SELECT * FROM TABLE
功能是一样的
D. 有个mysql存储过程,当字符串参数传进去带单引号,就会报错,请问怎么解决
MySQL识别下列转义字符:
\0
一个ASCII 0 (NUL)字符。
\n
一个新行符。
\t
一个定位符。
\r
一个回车符。
\b
一个退格符。
\'
一个单引号(“'”)符。
\"
一个双引号(“"”)符。
\\
一个反斜线(“\”)符。
\%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
\_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“\%”或“\%_”,这些将返回字符串“\%”和“\_”而不是“%”和“_”。
有几种方法在一个字符串内包括引号:
一个字符串内用“'”加引号的“'”可以被写作为“''”。
一个字符串内用“"”加引号的“"”可以被写作为“""”。
你可以把一个转义字符(“\”)放在引号前面。
一个字符串内用“"”加引号的“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串内用“'”加引号的与“"”也不需要特殊对待。
下面显示的SELECT演示引号和转义如何工作:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+
如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示:
NUL
ASCII 0。你应该用'\0'(一个反斜线和一个ASCII '0')表示它。
\
ASCII 92,反斜线。用'\\'表示。
'
ASCII 39,单引号。用“\'”表示。
"
ASCII 34,双引号。用“\"”表示。
E. 存储过程中变量的使用以及如何构造有单引号的Sql语句
--下面写的这个存储过程,功能是接收一个品种参数,根据这个参数查询符合条件的记录,并将这些记录插入到另一个表中,然后从这个表中查出数据,最后删除这个表。 create procere [dbo].[ceshi] @m as varchar(50) set @sql='insert into dbo.TempAVPrice (HQ_time,OpenPrice,HighPrice,LowPrice,ClosePrice,Hold_Vol,Accept_Vol,Accept_Money,AVPrice,UnUsed) select HQ_time,OpenPrice,HighPrice,LowPrice,ClosePrice,Hold_Vol,Accept_Vol,Accept_Money,AVPrice,UnUsed from dbo.TempPriceList where alisa like''' +@m+'%'''
F. 关于存储过程的引号,头晕了
这个引号 主要是看你的参数具体的值
你上面所举的例子,在我看来可能是你理解错了,注意你的引号到底是加上什么位置
你这里的语句补全后,大致应该是这样的:
'xxxxx' + @N + 'zzzzz'
假设@N = 'yyyyy' 时,拼接后就是 xxxxxyyyyyzzzzz
3引号的情况:
'''xxxxx''' + @N + '''zzzzz'''
仍然让@N = 'yyyyy',拼接后就是 'xxxxx'yyyyy'zzzzz'
1个引号时,就是表示所辖内容为字符串
3个引号时,第一个表示字符串前引号,第二个是转义字符,第三个表示引号(字符内容)
G. 数据库存储过程当中的一条语句,最下面两行的单引号和三单引号有什么区别
单引号 表示 拼接字段。
由于你要将整个insert语句拼接好之后,在下面调用,所以才用 '字符串'||参数||'字符串'这种形式。
你这个例子中的 v_T_CARD_NUMBER 是上面的参数,这里需要使用这个参数进行传值。
下面的那个属于转义字符,表示你的语句中 对应这个表的第三个字段T_LOG_F
可能是varchar类型的,所以这里用了三个单引号。
实际上这个语句 你可以简单的理解为 insert into table_name(字段1,字段2,字段3) values (111,222,'asdfasdf');这种形式。
H. 存储过程 单引号
1) 可以用''''表示字符串中的一个单引号,
如:set @a = '''' + 'xxxx' + ''''
或者 set @account = '''xxxx'''
查询分析器中执行 Print ''''
结果为 '
2)用Char(39),上例变为:set @a = char(39) + 'xxxx' + char(39)
查询分析器中执行 Select char(39) + 'xxxx' + char(39)
结果为 'xxxx'
I. SQL 转义字符,如何在存储过程中写 ' (单引号)
在存储过程中,密码中有’(单引号),第一反应使用转义字符。敲上/(反斜杠),失败告终; 网络一下如下结果,SQL 的转义字符是:'(单引号),所以在密码中写’’(两个单引号),表示一个单引号。C++ 的转义字符是:\SQL 的转义字符是:'(单引号)例:select * from tbl where uyear='''06'请注意其中红色背景的单引号,它即表示转义字符,如果我们省略,则整个语句会出错,转义字符不会输出,上例中 uyear 的实际条件值为 '06,而不是 ''06为什么不能省略呢,假如我们省略,上句变成:select * from tbl where uyear=''06'由于在 SQL 中单引号表示字符串的开始和结束符号,于是 SQL 解释器会认为语句中灰色背景的为字符串,其后的语句显然是个错误的语句,当然会报错,为了解决字符串的单引号问题,就出现了转义字符单。
J. 存储函数,存储过程中,怎么打转义字符
在存储过程中,密码中有’(单引号),第一反应使用转义字符。敲上/(反斜杠),失败告终;
网络一下如下结果,sql
的转义字符是:'(单引号),所以在密码中写’’(两个单引号),表示一个单引号。c++
的转义字符是:\sql
的转义字符是:'(单引号)例:select
*
from
tbl
where
uyear='''06'请注意其中红色背景的单引号,它即表示转义字符,如果我们省略,则整个语句会出错,转义字符不会输出,上例中
uyear
的实际条件值为
'06,而不是
''06为什么不能省略呢,假如我们省略,上句变成:select
*
from
tbl
where
uyear=''06'由于在
sql
中单引号表示字符串的开始和结束符号,于是
sql
解释器会认为语句中灰色背景的为字符串,其后的语句显然是个错误的语句,当然会报错,为了解决字符串的单引号问题,就出现了转义字符单。