0

我编写了一个包含参数类型 varchar2 的过程,我从应用程序中传递的字符串就像“'O'、'H'、'Y'”,我的查询如下。

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

查询不返回任何数据。如何处理?

我尝试使用双或三个单引号。

4

3 回答 3

2

尝试像这样设置参数'O,H,Y'

在这里你可以看到一些例子

于 2013-03-15T12:51:29.643 回答
0

如果您尝试将过程作为参数传递,那么您应该什么也得不到或错误。众所周知,您只能传递一个返回值的函数。您需要添加代码和示例以帮助您获得更多帮助。你到底在传递什么()?

-- Correct syntax to pass parameters in your case --
select * from table_name t where t.productname in ('O', 'H', 'Y')
/
于 2013-03-15T13:33:36.110 回答
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;
于 2013-03-15T16:36:09.320 回答