c#执行多句oracle,C#一次執行多條SQL語句,Oracle11g數據庫

由於經常執行SQL語句,如果一條一條執行效率低下。

oarclecmd.CommandText = sqlstr;

oraclecmd.ExecuteNonQuery();

sqlstr 可以寫成如下所示語句

begin sql1;

sql2;

......

sqln;

end; //注意此處的分號很重要

然后同樣調用ExecuteNonQuery()方法,可以一次執行多條sql語句。

如何在Oracle中一次執行多條sql語句 (.net C#)

關鍵是不能換行,要加上begin ...sql... end; 每個SQL用;隔開,end后面必須加;

有時我們需要一次性執行多條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: 出現符號 “”在需要下列之一時:……(語句之間有換行符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值