存儲過程單引號
參數單引號輸入''就可以了 '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
解釋器會認為語句中灰色背景的為字元串,其後的語句顯然是個錯誤的語句,當然會報錯,為了解決字元串的單引號問題,就出現了轉義字元單。