在不带func/proc的情况下使用从C#发送的SQL中的输入变量

在不带func/proc的情况下使用从C#发送的SQL中的输入变量,c#,sql,oracle,C#,Sql,Oracle,我正在使用一个非常严格的Oracle 11g安装,它只允许我发送SQL语句。无法创建存储过程或函数。我甚至不能创建临时表。我见过的其他解决方案都建议如何以交互方式或通过使用过程和函数来运行语句 语句变得相当复杂,发送的字符串中有很多参数。我想向语句中添加一些变量,以便在C#中构建语句字符串时,只需修改这些变量的字符串 我的意思是: sqlStatement = string.format(@" declare MyVar varchar(15); begin

我正在使用一个非常严格的Oracle 11g安装,它只允许我发送SQL语句。无法创建存储过程或函数。我甚至不能创建临时表。我见过的其他解决方案都建议如何以交互方式或通过使用过程和函数来运行语句

语句变得相当复杂,发送的字符串中有很多参数。我想向语句中添加一些变量,以便在C#中构建语句字符串时,只需修改这些变量的字符串

我的意思是:

sqlStatement = string.format(@"
   declare
      MyVar varchar(15);
   begin
      MyVar := '{0}';
      select * from MyTable where MyCol = MyVar;
   end;
", stringForMyVar);
OdbcDataAdapter oracleAdapter =new OdbcDataAdapter(sqlStatement,_oracleConn);
oracleAdapter.Fill(ds);

如何编写上述查询,使其从select返回结果集?

为什么不使用参数化查询?好问题。这不是我的代码,我不能触摸数据库模块。我的示例中的ODBC代码仅用于说明。我必须使用执行ODBC的自定义DatabaseConnector类,它不使用参数。为什么在示例代码中使用
MyVar
?为什么不直接将该值替换为
select
语句本身呢?因为@turphile,我想在Toad中测试查询,然后将其复制到我的代码中,只需进行最小的更改。替补是我现在的做法,我想让它变得更好。