我写一个查询像如何处理查询字符串中的特殊字符?
select * from fact_table where name = 'R&D'
select * from fact_table where name = 'John's'
我使用Oracle 11g数据库。是否有任何通用函数或查询样式可以在我的查询中处理特殊字符,如'&'和'''。
我不想单独处理每个案例,我想要一个通用的机制。
如果这是一个重复的职位,请指引我原来的职位
我写一个查询像如何处理查询字符串中的特殊字符?
select * from fact_table where name = 'R&D'
select * from fact_table where name = 'John's'
我使用Oracle 11g数据库。是否有任何通用函数或查询样式可以在我的查询中处理特殊字符,如'&'和'''。
我不想单独处理每个案例,我想要一个通用的机制。
如果这是一个重复的职位,请指引我原来的职位
使用引用操作
select * from fact_table where name = q'#John's#'
对于&号,它是像SQL工具的问题* Plus的
set define ~
select * from fact_table where name = 'R&D'
但在PL/SQL块,似乎工作的罚款:
declare
output VARCHAR2(10);
BEGIN
SELECT name
INTO output
FROM fact_table
WHERE name = '&1';
DBMS_OUTPUT.put_line('Output: ' || output);
END;
/
SQL> @test.sql;
Enter value for 1: R&D
old 7: WHERE name = '&1';
new 7: WHERE name = 'R&D';
Output: R&D
PL/SQL procedure successfully completed.
的符号应该正常工作。一些工具,如SQLPlus或SQLDeveloper使用此字符来指示绑定变量。禁用此“功能”是这样的: 集定义关闭 重新启用它是这样的: 集定义上
单引号,需要特别注意。 使用两个单引号字符告诉数据库,把它作为文字,就像这样: SELECT * FROM fact_table其中名称=“约翰”的
我不知道“最好”的方式,但似乎你可以使用一个逃生用户定义函数来修改你的字符串。 –