Oracle的循环和Corsor】的更多相关文章

这两天啊有一个心的业务,是须要假设我批量改动数据的话,那么还有一张表的数据也须要改动.也是多条的改动,发现这个问题的时候.自然而然的想到了触发器,可是曾经都是简单的单条语句的跟新,没有过整个表的去做一个触发器.今天学习了一下数据库中的循环,这里写一下. 在写触发器的时候用到了一个循环和一个Cursor,触发器例如以下: CREATE OR REPLACE TRIGGER trg_test before update ON cm_bogie_inandoutreport DECLARE //定义游…
oracle学习--循环语句  loop循环: create or replace procedure pro_test_loop is i number; begin i:=0; loop i:=i+1; dbms_output.put_line(i); if i>5 then exit; end if; end loop; end pro_test_loop; while循环: create or replace procedure pro_test_while is i number; b…
完成批量修改user_tables中的所有表的栏位名(从MS SQL导入过来,发现大小写问题,造成很多麻烦) 存储过程见下: -- Created on 2012/3/14 by FREE declare -- Local variables here Cursor tbl_cur is select table_name from user_tables; --col_cur Cursor; i integer; tbl_name ); ); begin -- Test statements…
Oracle的PL/SQL中怎样循环查询的结果集,然后根据查询结果进行判断,是新增或修改操作 loop循环例子 for item in (select a,b,c from table_a where 条件) loop insert into table_b(a,b,c) values (item.a,item.b,item.c); end loop; 如何将查询结果集进行赋值 -- 获取结算单位是否存在(查询结果集赋值)--- select COUNT(*) into conNum from…
数据库的设计(DataBase Design): 针对于用户特定的需求,然后我们创建出来一个最使用而且性能高的数据库! 数据库设计的步骤: 01.需求分析 02.概念结构设计 03.逻辑结构设计 04.物理结构设计 05.数据库的实施 06.数据库的运行和维护 数据库的3大范式: 1.确保每列的原子性!每一列都是一个不可再分的数据! 2.确保每列都和主键相关! 3.确保每列都和主键有直接的管理,而不是间接依赖(传递依赖)! PL/SQL: (Procedural Language) 过程化sql…
-- Call the procedure begin ' ) loop dbms_output.put_line('v_rlt = '||v_rlt.ID||v_rlt.inspection_no); end loop; dbms_output.put_line('FOR循环已经结束!'); end;…
declare v_XTXMBH number; v_ZJZJZJRQ varchar2(40); cursor c_job is SELECT XT.XTXMBH AS XTXMBH, QJ.ZJZJZJRQ AS ZJZJZJRQ FROM XTXMXX XT, QJGLXX_ZQL_MID QJ WHERE XT.XTXMBH = QJ.XTXMBH AND XT.XTXMCLRQ >= '20120630' AND (QJ.ZJQHZJRQ IS NULL OR QJ.ZJZJZJRQ…
Oralce 表中存有一个字段,该字段存储表名,要把该表中的所有表名查询出来(即表名结果集),且执行结果集from 表名结果集: declare v_ccount ); --定义一个游标变量 cursor c_job is --查询该表中的所有表名 select tablename from tbname; c_row c_job%rowtype; begin --循环待处理数据,即以上查出的结果集 for c_row in c_job loop ---执行语句 from 循环的表名 并插入 e…
以下的测试基于scott用户下的emp表 首先用while循环进行测试,向emp表插入999条数据 declare i emp.empno; begin loop insert into emp(empno,ename,sal) values(i,concat('A',i),i); i :; end loop; end; / 执行select count(empno) from emp;后确实插入了999条记录 执行truncate table emp; select * from emp; 现…
declare cursor TAGENTMENUd is select * from TAGENTMENU where 1=1; -- 获取游标begin --遍历查询出的表 (注意 tn是整条记录) for tn in TAGENTMENUd loop --取出旧表字段循环插入新表 insert into TAGENTMENUROLE values('000000001',tn.ID); end loop;end;…