有时我们需要一次性执行多条sql语句,而用来更新的sql是根据实际情况用代码拼出来的

解决方案是把sql拼成下面这种形式:

begin

update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';

update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';

end;

总结如下:

以begin开始,以end;结尾(end后的分号不能省),中间的每个sql语句要以分号;结尾

在实际编码中,发现即使这样也会有错误发生,把sql语句中的换行符替换成空格就可以了

比较稳妥的编码方式是:

1、以正常的方式编写sql,根据阅读与编写的需要,中间肯定会有换行符

2、在执行之前进行替换:strSql = strSql.Replace("r\n", " ").Replace('\n', ' ');

如果不采用这种方式,可能的异常有:

ORA-00933: SQL 命令未正确结束(如果sql没有以分号结尾)

ORA-00911: 无效字符(如果未加begin 和 end)

ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:......(如果end后面没有;分号)

ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 ""在需要下列之一时:......(语句之间有换行符)

[转]文章二

在上面的每一步,先建立一个OracleConnection,然后再建立一个OracleCommand,再执行ExecuteNonQuery()方法,接着OracleCommand调用Dispose()方法,最后OracleConnection调用Close()方法。这个过程在上面的过程中执行3此,大家知道对数据库的连接操作是很费时间的,有没有比较好的办法呢?答案是有的。

那就是利用PS/SQL。

begin

delete from Replys where UserId=5;--删除回帖

delete from Articles where UserId=5;--删除发帖

delete from Users where UserId=5;--删除用户

end;

那么整个过程可以这么写:

private void deleteUser(int userId)

{

string deleteSql = "begin delete from Replys where UserId={0};delete from Articles where UserId={1};delete from Users where UserId={2};end;";

deleteSql = String.Format(deleteSql, userId, userId, userId);

OracleConnection connection = new OracleConnection(connectionString);

connection.Open();

OracleCommand cmd = new OracleCommand(deleteSql, connection);

cmd.Dispose();

connection.Close();

}

这样就能在一个Connection中一次执行完所有操作了,当然,这个代码中没有考虑事务处理,实际使用中大家自行考虑酌情添加。

oracle多条sql语句常量,如何在Oracle中一次执行多条sql语句相关推荐

  1. opencv检测图片失焦 python_如何在Python中使用OpenCV执行模糊检测

    如何在Python中使用OpenCV执行模糊检测 目标检测 最后更新 2020-10-12 14:23 阅读 154 最后更新 2020-10-12 14:23 阅读 154 目标检测 ##FlyAI ...

  2. oracle竖线分隔符文件导入6,如何在sqlldr中倒入多字符分隔符文件

    如何在sqlldr中倒入多字符分隔符文件 今天有朋友询问: 我们...应用系统很多,它们之间要交换很多数据,目前是以文本方式交换,问题是文本的分隔符号是(|+|),为三个字符,主要是避免数据的混淆.. ...

  3. SQL性能优化第二篇之Mybatis如何能够执行多条SQL

    在第一篇基础上,数据库能够成功执行语句,但是放到Java代码中会报错有木有. 原来,mybatis在我们使用链接连接数据库时,需要我们手动在连接上加上代码: &allowMultiQuerie ...

  4. log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql

    通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql 通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql 说一下配置: 服务器weblogic ...

  5. php如何定义和使用常量,如何在PHP中定义和使用常量

    开发的时候,我们经常会把很多值定义成常量进行编写,但是这要怎么添加符号呢?今天爱站技术频道给大家具体介绍如何在PHP中定义和使用常量,一起进入下文学习吧! 1.自定义常量 * 必须用函数define( ...

  6. oracle时间格式设为英文,如何在Oracle开启时自动设置时间格式?

    参考: Oracle中 NLS_DATE_FORMAT的设置方法 Oracle日期格式默认为:DD-MON-YY,以下是3种方法可以修改使之永久生效: 1.修改glogin.sql文件,这个文件的路径 ...

  7. python中多重if语句用法_python – 在Pandas中使用Apply使用多个if语句的Lambda函数

    我试图根据像这样的数据框中的人的大小来推断分类: Size 1 80000 2 8000000 3 8000000000 ... 我希望它看起来像这样: Size Classification 1 8 ...

  8. shell脚本中怎样同时执行多个.sql文件,并把结果写入文件中(转)

    转载:http://joewalker.iteye.com/blog/408879 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个 ...

  9. 可以作为PHP的输出语句的是,下列选项中,可以作为PHP的输出语句的是

    下列选项中,可以作为PHP的输出语句的是 更多相关问题 The audience were ______ by his _______ performance on the stage. A.amaz ...

最新文章

  1. 【Harvest源码分析】GetFourZeroCrossingIntervals函数
  2. 增强MyEclipse的代码自动提示功能(测试结果不是很爽)
  3. Spring MVC 入门示例讲解
  4. oracle 存储 更新,oracle 更新空间数据存储过程语句
  5. Java技术分享:什么是数据库连接池?
  6. 用c语言构建二叉树(重点)
  7. 车辆出厂信息接口_最新10项中标招标信息汇总2020.12.7
  8. 祝福新年快乐的c语言代码,“春节十二响”C语言代码开源了,命名是亮点
  9. day09渗透简单测试流程以及PKI实验
  10. IOS关闭锁屏状态下左滑相机
  11. 大数据与人工智能方向基础 --- 概述
  12. 通信科技人员职业道德
  13. 读书笔记-kafka常用操作命令-kafka-topics.sh
  14. Artemis架构解析
  15. XGBoost参数说明
  16. 使用python批量下载需要的分子的SDF文件
  17. P1118 [USACO06FEB]数字三角形`Backward Digit Su`… 回溯法
  18. windows常用doc命令
  19. DirectIO(O_DIRECT) 详解
  20. 三菱变频器E700系列和FX3U系列485通讯

热门文章

  1. Google AppEngine:任务队列API
  2. 将Maven与Ivy集成
  3. toarray方法_机器学习中类别变量的编码方法总结
  4. 可以在循环体内声明局部变量吗?
  5. Java的子类可以继承父类的静态变量和静态方法吗?
  6. html文件压缩成gzip,前端性能优化成神之路-HTTP压缩开启gzip
  7. arm java 性能怎么样,ARM v6上使用java的Number to String转换性能
  8. python36_第36 p,就这几个方法,Python中文件的操作
  9. Html调用窗口,等待HTML调用window.print()之前写窗口
  10. hadoop 卡主_HDFS DisTCP执行卡住了,怎么办?