PL/SQL 转义字符,如 for 语句
PL/SQL escape character like for statement
我尝试搜索但没有找到答案。
我用 PL/SQL、HTML、CSS 和 Javascript 创建了一个 Web 应用程序。
人们可以搜索文章并对这些文章发表评论。
如果他们单击提交按钮,它就会开始根据客户的条件进行搜索。
我将条件作为参数发送并将它们存储到变量中。
之后我开始我的声明并使用新记录刷新页面。
如果有人用
等特殊字符发表评论
(&, %, ", ', _)
我的页面崩溃,因为声明字符串不再正确。
声明看起来像
SELECT * FROM myTable
WHERE Name LIKE ('''%'||nameVar||'%''');
对不起我的英语
谢谢
好的,首先你关于 "ESCAPING" 的问题把我引向了错误的方向,因为你可以为类似的语句定义一个 "ESCAPE" 字符:这将在你的语句文字中使用你的 % 或 _ :
where ..... like '%\%%' ESCAPE '\'
应该找到列中带有 % 的记录。
但这不是你的问题!
您的 Web 应用程序必须 HTML 对您的字符串进行编码 - 然后您可以将其存储在任何数据库中。
这必须由您的前端完成(无论它是什么:ASP.NET、PHP,等等...)
经过短暂的 Google 搜索,我发现了这个:HTF 包,HTF.ESCAPE_SC 函数将字符串编码为可用于 SQL 语句。
也许这个 link 可以帮助您:https://docs.oracle.com/cd/B14099_19/web.1012/b15896/pshtp.htm
我尝试搜索但没有找到答案。
我用 PL/SQL、HTML、CSS 和 Javascript 创建了一个 Web 应用程序。
人们可以搜索文章并对这些文章发表评论。 如果他们单击提交按钮,它就会开始根据客户的条件进行搜索。
我将条件作为参数发送并将它们存储到变量中。
之后我开始我的声明并使用新记录刷新页面。 如果有人用
等特殊字符发表评论(&, %, ", ', _)
我的页面崩溃,因为声明字符串不再正确。
声明看起来像
SELECT * FROM myTable
WHERE Name LIKE ('''%'||nameVar||'%''');
对不起我的英语 谢谢
好的,首先你关于 "ESCAPING" 的问题把我引向了错误的方向,因为你可以为类似的语句定义一个 "ESCAPE" 字符:这将在你的语句文字中使用你的 % 或 _ :
where ..... like '%\%%' ESCAPE '\'
应该找到列中带有 % 的记录。
但这不是你的问题!
您的 Web 应用程序必须 HTML 对您的字符串进行编码 - 然后您可以将其存储在任何数据库中。
这必须由您的前端完成(无论它是什么:ASP.NET、PHP,等等...)
经过短暂的 Google 搜索,我发现了这个:HTF 包,HTF.ESCAPE_SC 函数将字符串编码为可用于 SQL 语句。
也许这个 link 可以帮助您:https://docs.oracle.com/cd/B14099_19/web.1012/b15896/pshtp.htm