2011-08-19 84 views
0
select * from tableName where somecode = '$$$$$$$&8Y~$$$$' 

与OEM_sqlplus_input_finished更换及当我跑在sqlplus工作表此查询,我得到的输出是这样的:甲骨文 - 在选择查询

为8Y输入值:老2:和somecode =“$$ $$$$$ & 8Y〜$$$$') 新2:与somecode = '$$$$$$$ OEM_sqlplus_input_finished〜$$$$')选择

没有行

我的问题是,如果使用OracleConnection和OracleCommand(命令类型为文本)从ASP.NET应用程序执行此查询,它将作为查询1或2执行吗?

1. select * from tableName where somecode = '$$$$$$$&8Y~$$$$' 
2. select * from tableName where somecode = '$$$$$$$OEM_sqlplus_input_finished~$$$$' 

如果在的话,我如何禁用参数替换像这样当前的OracleConnection会话只(恢复到不管它是关闭连接后)?

(它是旧的.NET 1.1应用程序,所以的OracleConnection和的OracleCommand被使用)

回答

1

替换的起始符号(&)的变量是由SQL提供的功能*加。它既不是SQL,也不是PL/SQL。 SQL Developer实现了大部分这些SQL * Plus扩展。

因此,在您的.NET应用程序中,&符号没有特殊含义。

您也可以加*和SQL开发者通过执行关闭它在SQL:

SET DEF OFF