select * from tableName where somecode = '$$$$$$$&8Y~$$$$'
当我在SQLPlus工作表中运行此查询时,我得到如下输出:
输入8y的值:old 2:and somecode ='$$$$$$$& 8Y~L $$$$') 新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)
答案 0 :(得分:1)
以&符号(&)开头的变量替换是SQL * plus提供的功能。它既不是SQL也不是PL / SQL。 SQL Developer实现了大多数SQL * plus扩展。
因此,在您的.NET应用程序中,&符号没有特殊含义。
您也可以通过执行以下命令在SQL * plus和SQL Developer中将其关闭:
SET DEF OFF