首页 > 解决方案 > ' 在过程/函数上

问题描述

我不知道什么时候放'。例如在一个程序上,当我写执行立即“句子”时,如果我输入的句子中有一个值

'||valor||' 

但是在一个函数上我不知道为什么我必须写

return 'UPPER(USER_NAME) = ''' || user || '''';

不仅是“||用户||”。任何人都可以帮助我吗?

标签: sqlplsqloracle-sqldeveloper

解决方案


不要使用连接值构造查询。

改用类似的东西

EXECUTE IMMEDIATE 'SELECT user_id FROM user_table WHERE UPPER( username ) = :1' INTO your_user_id USING UPPER( your_user_name );

它将处理所有情况。在您的示例中,如果user包含 a会发生什么'?如果你有2个连续的'怎么办?这可能是一场真正的噩梦。

以下是 Oracle 的一些示例


推荐阅读