我编写了一个包含参数类型 varchar2 的过程,我从应用程序中传递的字符串就像“'O'、'H'、'Y'”,我的查询如下。
select * from table_name t where t.productname in (parameter)
查询不返回任何数据。如何处理?
我尝试使用双或三个单引号。
尝试像这样设置参数'O,H,Y'
在这里你可以看到一些例子
如果您尝试将过程作为参数传递,那么您应该什么也得不到或错误。众所周知,您只能传递一个返回值的函数。您需要添加代码和示例以帮助您获得更多帮助。你到底在传递什么()?
-- Correct syntax to pass parameters in your case --
select * from table_name t where t.productname in ('O', 'H', 'Y')
/
要在 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;