甲骨文 - 取代&在select查询中使用OEM_sqlplus_input_finished

时间:2011-08-19 19:09:44

标签: asp.net oracle plsql

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)

1 个答案:

答案 0 :(得分:1)

以&符号(&)开头的变量替换是SQL * plus提供的功能。它既不是SQL也不是PL / SQL。 SQL Developer实现了大多数SQL * plus扩展。

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

您也可以通过执行以下命令在SQL * plus和SQL Developer中将其关闭:

SET DEF OFF