2013-03-15 88 views
0

我寫了一個包含參數類型varchar2的過程,並且從我的應用程序字符串傳遞過來就像是''O','H','Y'「,我的查詢如下所示。PL/SQL使用參數包含引號

select * from table_name t where t.productname in (parameter) 

查詢不返回任何數據。如何處理它?

我嘗試喲雙或三個quatitions標記。

回答

2

嘗試設置這樣參數「O,H,Y」

Here你可以看到一些例子

+0

的原因,這是一個很好的答案是,特殊字符,例如撇號時字符串作爲查詢參數發送給數據庫得到逃過一劫。在某些時候,你將不得不告訴數據庫把參數當作一個列表。細節取決於您爲應用程序使用的編程語言。 – 2013-03-15 13:15:27

0

如果你試圖通過一個過程作爲參數,那麼你應該得到什麼或錯誤。衆所周知,您只能傳遞一個返回值的函數。您需要添加代碼和示例以幫助您獲得更多。你究竟傳遞了什麼()?

-- Correct syntax to pass parameters in your case -- 
select * from table_name t where t.productname in ('O', 'H', 'Y') 
/
0

要在sql查詢中傳遞單引號,請使用單引號兩次。簡單!

您可以:

select * from table_name t where t.productname in ('''O''', '''H''', '''Y''') 

要進行測試,您可以使用:

SELECT 'Schindler''s List' AS fname FROM dual; 

,看看,你可以很容易地通過單引號的查詢。

雙引號在這裏沒什麼問題。我們可以直接使用雙引號的SQL字符串文字裏面,像

SELECT 'He said, "Give me my teddy bear!"' AS dilogue FROM dual;