我有一个示例SQL代码,如下所示
select *
from Engg_Studens
where Student_Name = '&Student_Name'
And Department = 'computer science & Engineering' ;
我的问题是:在运行SQL时,它要求'& engineering'
的替换变量在部门名称中。
我应该只被要求'&student_name'
。
答案 0 :(得分:3)
你不能写一个包含"&"字符。
尝试如下:
select * from Engg_Studens where Student_Name = '&Student_Name'
and Department = 'computer science '|| chr(38) ||' Engineering' ;
答案 1 :(得分:1)
你可以逃脱第二个&符号(&
),但老实说,我从来没有记得如何做到这一点。我通常做这样的事情:
SELECT *
FROM engg_studens
WHERE student_Name = '&Student_Name'
AND department = 'Computer Science &' || ' Engineering';
在此使用连接(||
)运算符可以避免替换变量。
答案 2 :(得分:1)
另一种方法是change the substitution character对你确定不会在其他地方使用的东西:
SQL> set define ^
SQ> select *
from Engg_Studens
where Student_Name = '^Student_Name'
And Department = 'computer science & Engineering'
Enter value for student_name: Arif
old 3: where Student_Name = '^Student_Name'
new 3: where Student_Name = 'Arif'
现在只将^Student_Name
视为替换变量,因此您只能获得提示。
您还可以将提示与查询分开并切换到使用实际的绑定变量,但这似乎有点过分。