在过去的几个小时里,我一直在尝试在使用ADO.NET的.NET应用程序中对Oracle数据库执行最简单的操作(至少对于SQL SERVER来说是最简单的)。然而这似乎是不可能的。
对于SQL SERVER,如果我有一个SqlCommand对象,我会执行这样一个简单任务:
对于SQL SERVER,如果我有一个SqlCommand对象,我会执行这样一个简单任务:
comm.CommandText = @"
DECLARE @next_id INT
SET @next_id = (SELECT ISNULL(MAX(id_col),0) FROM TABLE_1) + 1
INSERT INTO TABLE_1 (id_col, col1, ...) VALUES (@next_id, val1, ...)
SELECT @next_id";
int id = Convert.ToInt32(comm.ExecuteScalar());
这将向表TABLE_1插入一条新记录,我会在c#代码中使用"id"变量获取新的id。
四个简单的步骤:
- 声明一个变量
- 将它设置为下一个可用的id
- 使用新变量插入记录
- 返回变量的值
好的,我已经在Oracle查询中声明了这个变量。我也(认为)成功给它赋了一个值(使用SELECT INTO)。
如何在c#中获取这个变量的值?如何在Oracle SQL中将变量的值选择到输出流?
我知道有更好的方法来获取identity列,但这不是问题。它可能是一个完全不同的例子。问题很简单。 :我在一个从.net应用程序内部执行的oracle sql脚本中声明了一个变量。 如何从oracle查询中将变量的值返回到c#?以上代码在Oracle ADO.NET查询中的等效代码是什么?