oracle执行多语句怎么写
1.Oracle中怎样一次执行多条sql语句
有时我们需要一次性执行多条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: 出现符号 ""在需要下列之一时:。。(语句之间有换行符)
2.如何在Oracle中一次执行多条sql语句
在oracle要一次执行多条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: 出现符号 ""在需要下列之一时:。。(语句之间有换行符
3.Oracle中怎样一次执行多条sql语句
需要一次性执行多条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: 出现符号 ""在需要下列之一时:。
(语句之间有换行符)。
4.如何在Oracle中一次执行多条sql语句
在oracle要一次执行多条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;总结如下:以开始,以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: 出现符号 ""在需要下列之一时:。
(语句之间有换行符。
5.如何在Oracle中一次执行多条sql语句
有时我们需要一次性执行多条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: 出现符号 ""在需要下列之一时:。
(语句之间有换行符)。
oracle判断语句怎么写
1. oracle中判断语句怎么写
是存储过程里面的 IF/ELSE ? 还是简单的 DECODE ?
SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 100;
5
6 IF testvalue > 100 THEN
7 dbms_output.put_line( '100+' );
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /
100
PL/SQL procedure successfully completed.
SQL> SELECT
2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);
ITEN MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405
2. oracle查询语句条件判断怎么写
一个多条件判断的sql:
select
oper.opid,
oper.user_name,
oper.user_host,
case
when oper.oper_type = 1 then 'System Manager'
when oper.oper_type = 2 then 'USER Manager'
end case,
case
when oper.oper_object_type = 1 then 'User'
when oper.oper_object_type = 2 then 'Role'
when oper.oper_object_type = 3 then 'Broker'
when oper.oper_object_type = 4 then 'QM Manager'
when oper.oper_object_type = 5 then 'User Group'
when oper.oper_object_type = 6 then 'Msg Flow'
when oper.oper_object_type = 7 then 'Queue'
end case
from esb_log_user_oper oper;
3. oracle数据库条件判断的查询语句怎么写
建表,测试数据:
create table test
(收款标志 int)
insert into test values (1);
insert into test values (1);
insert into test values (1);
commit;执行:
select case
when a.cnt = b.cnt then
'未收款'
when a.cnt = d.cnt then
'已收款'
when c.cnt 0 then
'部分收款'
end 收款状态
from (select count(*) cnt from test) a,
(select count(*) cnt from test where 收款标志 = 1) b,
(select count(*) cnt from test where 收款标志 = 2) c,
(select count(*) cnt from test where 收款标志 = 3) d结果:
然后你自己换点其他数据测试一下吧,思路就这么个思路了。
4. oracle中能否写判断语句
如果是select查询做显示的话select code, name, case when length(code) =3 then 1 when length(code)=6 then 2 when length(code)=9 then 3 end id from table;如果是要插入的话 update table set id =( case when length(code) =3 then 1 when length(code)=6 then 2 when length(code)=9 then 3 end)。
oracle的删除语句怎么写
1. oracle删除数据语句怎么写
Oracle数据删除语句
--查看当前SCN数值
SELECT dbms_flashback.get_system_change_number from dual;
--Scn与时间的对应关系
SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss', to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) AS SCN from dual;
--通过时间flashback query数据
SELECT * FROM scott.test AS OF TIMESTAMP TO_TIMESTAMP('2013-11-17 10:25:17', 'YYYY-MM-DD HH:MI:SS');
--通过SCN 闪回数据
SELECT * FROM scott.test AS OF SCN 23565583;
--闪回表中误删除的数据
flashback table tablename to timestamp xxx
flashback table tablename to scn xxx
--闪回表前提条件
--该表需开启行移动功能,可在恢复之前打开再执行恢复
alter table test enable row movement;
2. SQL 删除语句怎么写呢
原发布者:wokfxzz
truncatetable--删除单个站点的相关数据【只删除数据,不删除基本信息】--总表DELETEFROM[In_Port_Log]whereHardware_Id=''DELETEFROM[In_Port_LogError]whereHardware_Id=''--降雨DELETEFROM[HY_OBP_G]whereSTCD=''--降雨记录表DELETEFROM[ST_PPTN_R]whereSTCD=''--降雨处理表DELETEFROM[HY_DP_C]whereSTCD=''--降雨日记录DELETEFROM[HY_MTP_E]whereSTCD=''--降雨月纪录DELETEFROM[HY_YRP_F]whereSTCD=''--降雨年纪录DELETEFROM[Ep_YQ_JC]whereSTCD=''--预警DELETEFROM[LH_P_R]whereSTCD=''--实时表DELETEFROM[LH_P_DAY]whereSTCD=''--降雨统计表:日表DELETEFROM[LH_P_MONTH]whereSTCD=''--降雨统计表:月表--流量DELETEFROM[ST_RIVER_R]whereSTCD=''--河道处理表DELETEFROM[HY_DQ_C]whereSTCD=''--流量日记录DELETEFROM[HY_MTQ_E]whereSTCD=''--流量月纪录DELETEFROM[HY_YRQ_F]whereSTCD=''--流量年纪录DELETEFROM[LH_Q_DAY]whereSTCD=''--河道统计表:日表DELETEFROM[LH_Q_MONTH]whereSTCD=''--河道统计表:月表DELETEFROM[LH_Q_DAY_MinMaxAvg]whereSTCD=''--河道统计表:最大最小值表--库容DELETEFROM[ST_RSVR_R]whereSTCD=''--库容处理表DELE
3. oracle执行删除语句不记录日志怎么写
方法1:使用LogMiner工具
优点:可以完全挖掘日志内容,找出所有执行过的SQL语句
缺点:
1. 如果没有启用归档日志,则只能对联机日志进行挖掘
2. 需要掌握LogMiner的用法
访法2:查看HIST视图
优点:简单,只要使用普通的select语句查询
缺点:Oracle保留约1周的历史,所以要查太早的就不可能了
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作
举例如下:
SELECT c.username,
a.program,
b.sql_text,
b.command_type,
a.sample_time
转载请注明出处育才学习网 » oracle的update语句怎么写
育才学习网