PL/SQL使用参数包含引号

PL/SQL使用参数包含引号,sql,plsql,Sql,Plsql,我编写了一个包含varchar2类型参数的过程,我从应用程序字符串中传递的参数类似于“'O','H','Y'”,下面是我的查询 select * from table_name t where t.productname in (parameter) 查询不返回任何数据。如何处理 我试着用两个或三个四分之一标记。试着像这样设置参数'O,H,Y' 您可以看到一些示例如果您试图将一个过程作为参数传递,那么您将不会得到任何结果或错误。我们都知道,您只能传递一个返回值的函数。您需要添加代码和示例以帮助

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

select * from table_name t where t.productname in (parameter)
查询不返回任何数据。如何处理


我试着用两个或三个四分之一标记。

试着像这样设置参数'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;

这是一个好答案的原因是,当字符串作为查询参数发送到数据库时,特殊字符(如撇号)会被转义。在某个时刻,您将不得不告诉数据库将参数作为列表处理。详细信息取决于应用程序使用的编程语言。
SELECT 'He said, "Give me my teddy bear!"' AS dilogue FROM dual;