Sql 使用Oracle替换变量进行查询
我有一个示例SQL代码,如下所示Sql 使用Oracle替换变量进行查询,sql,oracle,sqlplus,Sql,Oracle,Sqlplus,我有一个示例SQL代码,如下所示 select * from Engg_Studens where Student_Name = '&Student_Name' And Department = 'computer science & Engineering' ; 我这里的问题是:在运行SQL时,它要求为部门名称中的“&engineering”替换变量。 应该只要求我输入“&student_name”您不能编写包含“&”字符的语句 尝试以下方法: select *
select *
from Engg_Studens
where Student_Name = '&Student_Name'
And Department = 'computer science & Engineering' ;
我这里的问题是:在运行SQL时,它要求为部门名称中的“&engineering”
替换变量。
应该只要求我输入
“&student_name”
您不能编写包含“&”字符的语句
尝试以下方法:
select * from Engg_Studens where Student_Name = '&Student_Name'
and Department = 'computer science '|| chr(38) ||' Engineering' ;
不能编写包含“&”字符的语句 尝试以下方法:
select * from Engg_Studens where Student_Name = '&Student_Name'
and Department = 'computer science '|| chr(38) ||' Engineering' ;
你可以避开第二个符号(
&
),但老实说,我从来都不记得该怎么做。我通常会这样做:
SELECT *
FROM engg_studens
WHERE student_Name = '&Student_Name'
AND department = 'Computer Science &' || ' Engineering';
在这里使用串联(
|
)运算符可以避免替换变量。您可以转义第二个与(&
)符号,但老实说,我从来都不记得该怎么做了。我通常会这样做:
SELECT *
FROM engg_studens
WHERE student_Name = '&Student_Name'
AND department = 'Computer Science &' || ' Engineering';
在此处使用串联(|
)运算符可以避免替换变量。另一种方法是处理您确信不会在其他地方使用的内容:
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\u Name
被视为替换变量,因此您只会得到提示
您还可以潜在地将提示与查询分开,并切换到使用实际的绑定变量,但这似乎有些过分。另一种方法是处理您确定不会在其他地方使用的内容:
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\u Name
被视为替换变量,因此您只会得到提示
您也可以将提示与查询分开,并切换到使用实际绑定变量,但这里似乎是多余的。
这是因为您没有正确地逃脱< <代码> >代码>计算机科学与工程> <代码>,并且认为它是绑定变量。阅读与问题无关的解决方案,但这是一个替换变量,而不是绑定参数。它们是不同的东西。我建议将标题标题更改为“使用Oracle替换变量进行查询”。这是因为您在代码< >计算机科学与工程> <代码>中没有正确地逃脱<代码>和<代码>,并且认为它是绑定变量。阅读与问题无关的解决方案,但这是一个替换变量,而不是绑定参数。它们是不同的东西。我建议将问题标题改为“使用Oracle替换变量查询”。实际上,您可以。您必须正确转义字符,更改替换变量字符的设置(使用不同的字符)或完全关闭替换变量(并使用参数化查询)。实际上,您可以。您必须正确地转义字符,更改替换变量字符的设置(使用不同的字符)或完全关闭替换变量(并改用参数化查询)。尝试使用语法,结果成功。谢谢你的脚本。尝试了语法,效果很好。谢谢你的剧本。当我测试它时,它工作了,所以不知道该告诉你什么。这取决于“不起作用”是什么意思。当我测试它时,它起作用了,所以不知道该告诉你什么。这取决于“不起作用”是什么意思。