GVKun编程网logo

在Oracle中的一个ExecuteScalar中运行多个命令(oracle execute immediate执行多条语句)

16

在本文中,我们将带你了解在Oracle中的一个ExecuteScalar中运行多个命令在这篇文章中,我们将为您详细介绍在Oracle中的一个ExecuteScalar中运行多个命令的方方面面,并解答o

在本文中,我们将带你了解在Oracle中的一个ExecuteScalar中运行多个命令在这篇文章中,我们将为您详细介绍在Oracle中的一个ExecuteScalar中运行多个命令的方方面面,并解答oracle execute immediate执行多条语句常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar、Anorm Scala executeUpdate和executeInsert之间的区别、C# ExecuteScalar()方法案例讲解、c# ExecuteScalar和ExecuteNonQuery

本文目录一览:

在Oracle中的一个ExecuteScalar中运行多个命令(oracle execute immediate执行多条语句)

在Oracle中的一个ExecuteScalar中运行多个命令(oracle execute immediate执行多条语句)

我有一批sql语句,例如…

插入.... ; 插入.... ; 删除 .........;

等等

当我尝试对oracle执行它们时,它给了我这个错误(ORA-00911无效字符)

现在我可以理解,这是由于语句之间的分号所致,我在SQL Server上尝试了此操作,但仍有效,但到目前为止在Oracle中还没有运气。

有没有一种方法可以使用ExecuteScalar或其他功能针对oracle运行多个语句?


答案1

小编典典

尝试用 BEGIN..END

BEGIN insert into.... ; insert into.... ; delete .........; END;

ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar

ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar

ADO.Net基础
程序要和数据交互要通过ADO.Net进行,通过ADO.Net就能在程序中执行

sql了。 ADO.Net中提供了对各种不同数据的统一操作接口。
直接在项目中内嵌mdf文件的方式使用sqlServer数据库(基于服务的数据

库)。 mdf文件随着项目走,用起来方便,和在数据库服务上创建数据库

没什么区别,运行的时候会自动附加(Attach)。
双击mdf文件会在“服务器资源管理器”中打开,管理方式和在

Management Studio没有什么本质不同。要拷贝mdf文件需要关闭所有指向

mdf文件的连接。
正式生产运行的时候到附加sqlServer上、修改连接字符串即可,除此之

外没有任何的区别,在“数据库”节点上点右键“附加”;在数据库节点

上任务分离就可以得到可以拷来拷去mdf文件。
用的时候要在控制台、WinForm项目中在Main函数最开始的位置加入备注

中的代码。ASP.Net项目中不需要。

连接sqlServer
连接字符串:程序通过连接字符串指定要连哪台服务器上的、哪个实例的

哪个数据库、用什么用户名密码等。
项目内嵌mdf文件形式的连接字符串“Data Source=.

\sqlEXPRESS;AttachDBFilename=|DataDirectory|

\Database1.mdf;Integrated Security=True;User Instance=True”。
     “.\sqlEXPRESS”表示“本机上的sqlEXPRESS实例”,如果数据库

实例名不是sqlEXPRESS,则需要修改。” Database1.md“f为mdf的文件

名。
ADO.Net中通过sqlConnection类创建到sqlServer的连接,

sqlConnection代表一个数据库连接, ADO.Net中的连接等资源都实现了

Idisposable接口,可以使用using进行资源管理,执行备注中的代码如果

成功了就 ok。


可能遇到的错误
1、由于 启动用户实例的进程时出错,导致无法生成sqlServe的用户实例


http://wenwen.soso.com/z/q15616823.htm
2、版本太低,只支持2005及以下数据库。解决:安装VisualStudio 2008

SP1.
3、启动超时。多试几次

执行简单的Insert语句
sqlCommand表示向服务器 提交的命令(sql语句等)CommandText属性为

要执行的sql语句,Execute NonQuery方法执行一个非查询语句(Update

、Insert、Delete等)
  Using(sqlCommand cmd=conn.CreateCommand())
 {
   cmd.CommandText=“Insert into T_Users(UserName.Password)

values (’admin’,’888888’)”;
   cmd ExecuteNonQuery();
}
ExecuteNonquery返回值是执行的影响行数
常犯错:
string username=‘test’;
…….
cmd.CommandText=“Insert into T_Users(UserName.Password) values

(’username’,’888888’)”;

ExecuteNoQuery()
sqlCommand表示向服务器 提交的命令(sql语句等)CommandText属性为

要执行的sql语句,Execute NonQuery方法执行一个非查询语句(Update

、Insert、Delete等)
  Using(sqlCommand cmd=conn.CreateCommand())
 {
   cmd.CommandText=“Insert into T_Users(UserName.Password)

values (’admin’,’888888’)”;

ExecuteScalar
sqlCommand 的一个方法,用于执行查询,返回查询中返回的结果 集中的

第一行 第一列 。
1)
Output inserted.id
执行有多行结果集的用ExecuteReader();
sqlDataReader
Cmd.executeNoQuery()
Cmd.executeReader()
sqlDataReader reader=cmd.ExecuteReader();
While(reader.Read())
{
Console.writeline(reader.GetString(1));
}
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号

。Getordinal方法,根据列名动态得到序号。
执行有多行结果集的用ExecuteReader();
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号

。Getordinal方法,根据列名动态得到序号。

string source = @"Data Source=.\sqlEXPRESS;AttachDBFilename=|

DataDirectory|\Database1.mdf;Integrated Security=True;User

Instance=True";
            using(sqlConnection conn=new sqlConnection(source) )
            {
                conn.open();

                using (sqlCommand com = conn.CreateCommand())
                {
                   /* com.CommandText = "Insert into T_User

(name,age,nikaname)values('YOYO',20,'PPP')";
                    com.ExecuteNonQuery();
                    Console.WriteLine("插入成功!");
                    */

                    com.CommandText = "select * from T_user";
                    sqlDataReader reader = com.ExecuteReader();
                    while (reader.Read())
                       {
                        string username = reader.GetString

(reader.Getordinal("name"));
                        int age = reader.GetInt32

(reader.Getordinal("age"));
                        Console.WriteLine("Uname={0},Uage=

{1}",username,age);                         }               }            }          Console.WriteLine("打开了!");          Console.ReadKey();         }

Anorm Scala executeUpdate和executeInsert之间的区别

Anorm Scala executeUpdate和executeInsert之间的区别

我一直在讨论使用executeUpdate()而不是executeInsert()之间的区别.

在下面的代码中,我使用了executeInsert()

def addEntry(day: DateMidnight,create_time: DateTime,points: Long,src: String) = DB.withTransaction { implicit connection => 

    Logger.debug("I got here")
    sql(
      """
        INSERT INTO density_cache(day_of,create_time,points,src) 
           VALUES ({day_of},{create_time},{points},{src})
      """
    ).on(
      ''day_of       -> day,''create_time  -> create_time,''points       -> points,''src          -> src
    ).executeInsert()
    Logger.debug("Got to 2nd step")
}

我遇到以下问题:
java.lang.RuntimeException:TypeDoesNotMatch(无法将2013-04-15 13:58:46.0​​:类java.sql.Timestamp转换为Long为列ColumnName(density_cache.day_of,Some(day_of)))

但是当我切换到executeUpdate()时,它工作正常.

解决方法

不同之处在于executeInsert将返回自动生成的密钥(如果有的话).

Anorm,simple SQL data access => Executing SQL queries

If you are inserting data that has an auto-generated Long primary key,you can call executeInsert(). If you have more than one generated key,or it is not a Long,executeInsert can be passed a ResultSetParser to return the correct key.

在你的情况下,我猜/假设你没有自动递增的主键,因此它不能与executeInsert()一起使用.如果您有,那么您可能必须传递具有正确类型的ResultSetParser.

C# ExecuteScalar()方法案例讲解

C# ExecuteScalar()方法案例讲解

执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。

1、返回的是一个object类型,也就是说是所有数据类型的基类,可根据select所得的第一列的数据类型转换为对应的数据类型

例:

string strConn = "Data Source=(local);Initial Catalog=paperManage;Integrated Security=True";
SQLConnection objConn = new SQLconnection(strConn);
SQLCommand objCMD = new SQLCommand(strSQL,objConn);
object objResult = objCMD.ExecuteScalar() //或者 string result = objCMD.ExecuteScalar().toString();

2、当select语句无记录返回时,ExecuteScalar()返回NULL值,无法再将null值赋给任何对象或者变量,否则出现异常:System.NullReferenceException:   未将对象引用设置到对象的实例

例:

若select查询无返回记录,以下代码则会抛出异常:

try
{
   string result = objCMD.ExecuteScalar().toString();
}
catch(SQLException ee)
{
   MessageBox.show(ee.toString());
}

解决方法是先判断ExecuteScalar()是否为null,再进行相应的处理。

例:

if (objCMD.ExecuteScalar() == null) {
    //为空时的操作
} else {
    result = objCMD.ExecuteScalar().ToString().Trim();
}

使用 ExecuteScalar() 方法从数据库中检索单个值(例如一个聚合值)。

典型的 ExecuteScalar() 查询可以采用类似于下面的 C# 示例的格式:

cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();

到此这篇关于C# ExecuteScalar()方法案例讲解的文章就介绍到这了,更多相关C# ExecuteScalar()方法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • C# Request.Form用法案例详解
  • C# Console.WriteLine()用法案例详解
  • C# NullReferenceException解决案例讲解
  • C# MemoryStream类案例详解
  • C# TreeNode案例详解
  • c#多线程之间的排他锁的实现
  • C#的TimeSpan案例详解
  • C# Directory.GetFiles()函数案例详解

c# ExecuteScalar和ExecuteNonQuery

c# ExecuteScalar和ExecuteNonQuery

今天写代码时,遇到一个问题,解决之后,然后想记录一下,于是就申请开通博客,本人是菜鸟,问题可能比较简单

 

using (SqlConnection con = getConnect())
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    
                    result = (int)cmd.ExecuteScalar();
                }
            }
using (SqlConnection con = getConnect())
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                  
                    result = cmd.ExecuteNonQuery();
                }
            }

就是在查询一个 select count(id) from UrgentOrder where orgid='''' ,获取集合数的时候,第一次使用了 

ExecuteNonQuery   ,然后怎么查返回都是-1(result初始值-1),我还以为sql写的问题,放入数据库中查询是正确的,然后我就纳闷了,,去翻一下资料了,
发现这个是返回受影响的数值,增加,更新,删除的情况。
ExecuteScalar  而这个是执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。


20191109记
 

今天关于在Oracle中的一个ExecuteScalar中运行多个命令oracle execute immediate执行多条语句的介绍到此结束,谢谢您的阅读,有关ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar、Anorm Scala executeUpdate和executeInsert之间的区别、C# ExecuteScalar()方法案例讲解、c# ExecuteScalar和ExecuteNonQuery等更多相关知识的信息可以在本站进行查询。

本文标签: