首页 数据库 mysql教程 Oracle存储过程分离表中的数据

Oracle存储过程分离表中的数据

Jun 07, 2016 pm 02:57 PM
oracle 分离 存储 数字 数据 过程

ORACLE数据库sql 无 select rowid from books b;select sec8 from upload_sec;----------------------------------------------------------数据插入create or replace procedure proc_insert( head in varchar2,num in varchar2)isbegininsert into SEC_DETA

ORACLE 数据库sql <无>
select rowid from books b;
select sec8 from upload_sec;



----------------------------------------------------------数据插入
create or replace procedure proc_insert
( 
 head in varchar2,
num in varchar2
)
is
begin
insert into SEC_DETAIL values('陕西','西安','029',head||num,sysdate);
commit;
dbms_output.put_line('存储成功');
end;



-------------------------------------------------------------------------------------------------------------------------------------

select * from SEC_DETAIL;
select sysdate from dual;
----------------------------数据插入验证
declare
begin
proc_insert('132','310');
end;

dbms_output.put_line('ooo');
dbms_output.put_line('产品名称:');
select * from sec_detail;
delete from sec_detail;

-------------------------提交数据
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC1, SEC4, SEC5, SEC6, SEC8, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '950-959', '040-049、910-919', '918、920-929', '200-219、240-249', '571-575、578-579', '600-619', '330-339', '131');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC2, SEC4, SEC5, SEC7, SEC8, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '140-189', '700-709、770-789、800-809', '410', '940-949、970-999', '920-949', '920-939、980-989', '900-913、916-917、919', '132');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC2, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '290-299、918', '900-909、920-969', '180-189、410-419、460-469、480-499、616-618、640-644、660-669、680-689', '155');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC2, SEC3, SEC4, SEC6, HEAD)
 Values
   ('陕西', '西安', '29', '670-679、687-689', '680-684、690-695', '460-464、478', '478-499、581-599', '145');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC2, SEC8, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '290-299、928', '900-909、914-915、919、924-926、928-969', '180-189、194、290-299', '145、148-149、152、155-157、163、180-189、195', '186');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '290-299、920-929', '140-149、175-179、184-189、191-228、250-299', '185');
Insert into UPLOAD_SEC
   (PROVINCE, CITY, AREA_CODE, SEC0, SEC1, SEC6, SEC8, SEC9, HEAD)
 Values
   ('陕西', '西安', '29', '920-929', '900-909、920-949', '460-499、700-709', '600-609、620-629、640-649', '140-149、170-199', '156');
COMMIT;


select * from upload_sec;
--------------------------------------
select sec0 from upload_sec;
----------------------------
create or replace procedure proc_find

(

)
is 
begin
end;
--------------------------------------------------------------------------------------------------------主操作
create or replace procedure proc_ok
(
row in upload_sec%rowtype
)
  is
 begin

 
     if row.sec0 is null or row.sec0='' then
       dbms_output.put_line('0是空的');
      else
      proc_el(row.sec0,row.head);
        dbms_output.put_line('----------------------------------------0号'||row.sec0);
     end if;
     
       if row.sec1 is null or row.sec1='' then
       dbms_output.put_line('1是空的');
      else
      proc_el(row.sec1,row.head);
        dbms_output.put_line('----------------------------------------1号'||row.sec1);
     end if;
      
       if row.sec2 is null or row.sec2='' then
       dbms_output.put_line('2是空的');
      else
      proc_el(row.sec2,row.head);
        dbms_output.put_line('----------------------------------------2号'||row.sec2);
     end if;
     
       if row.sec3 is null or row.sec3='' then
       dbms_output.put_line('3是空的');
      else
      proc_el(row.sec3,row.head);
        dbms_output.put_line('----------------------------------------3号'||row.sec3);
     end if;
     
       if row.sec4 is null or row.sec4='' then
       dbms_output.put_line('4是空的');
      else
      proc_el(row.sec4,row.head);
        dbms_output.put_line('----------------------------------------4号'||row.sec4);
     end if;
     
       if row.sec5 is null or row.sec5='' then
       dbms_output.put_line('5是空的');
      else
      proc_el(row.sec5,row.head);
        dbms_output.put_line('----------------------------------------5号'||row.sec5);
     end if;
     
       if row.sec6 is null or row.sec6='' then
       dbms_output.put_line('6是空的');
      else
      proc_el(row.sec6,row.head);
        dbms_output.put_line('----------------------------------------6号'||row.sec6);
     end if;
     
       if row.sec7 is null or row.sec7='' then
       dbms_output.put_line('7是空的');
      else
      proc_el(row.sec7,row.head);
        dbms_output.put_line('----------------------------------------7号'||row.sec7);
     end if;
     
       if row.sec8 is null or row.sec8='' then
       dbms_output.put_line('8是空的');
      else
      proc_el(row.sec8,row.head);
        dbms_output.put_line('----------------------------------------8号'||row.sec8);
     end if;
    
        if row.sec9 is null or row.sec9='' then
       dbms_output.put_line('9是空的');
      else
      proc_el(row.sec9,row.head);
        dbms_output.put_line('----------------------------------------9号'||row.sec9);
     end if;
         
     
       end;
  ------------------------------------------------------------------
  select * from sec_detail order by sec;

delete from sec_detail;
  select * from upload_sec;
  ----------------------------------------------------------------------------------------游标取表中数据调proc_ok;
  declare
  cursor  num is select * from upload_sec;
  begin
  
 
  for row in num loop
  proc_ok(row);
  
  end loop;
  end;
  ----------------------------------------------输出设置
  
  set serveroutput on size 1000000;
  
  
  -------------------------------------- 循环插入
  create or replace procedure proc_for 
  (
    head in varchar2,
    sta in  varchar2,
    en in varchar2  
  )
  is
  a int(10);
  b int(10);
    nu varchar2(50);
  begin
  
  if instr(sta,'0')=1 then

   a:=to_number(sta);
  dbms_output.put_line(a);
  b:=to_number(en);
  dbms_output.put_line(b);
   for i in a..b loop
   select  to_char(i) into nu from dual; 
   proc_insert(head,'0'||nu);
   dbms_output.put_line('0'||nu);
  end loop;
  
else
  a:=to_number(sta);
  dbms_output.put_line(a);
  b:=to_number(en);
  dbms_output.put_line(b);
   for i in a..b loop
   select  to_char(i) into nu from dual; 
   dbms_output.put_line(nu);
   proc_insert(head,nu);
  end loop;
end if;
  
end;
-----------------------------------------------循环插入验证
declare

begin
proc_for('130','037','042');
 
end;

select instr('029','0') from dual;

--------------------------------------
-------------------
select *from sec_detail;
select '0'||'0' from dual;

------------------------------------------------------每单元格分拆测试
declare
el varchar2(100);

begin
el:='22-33-44-55-66';
loop
  dbms_output.put_line(substr(el,1,instr(el,'-')-1));
  
  
 el:=substr(el,instr(el,'-')+1);
 exit when length(el)=2; 
 end loop;
  dbms_output.put_line(el);
  end;
  
  
  -----------------------------------------------------------------分拆单元格过程并插入
  create or replace procedure  proc_el 
  (
  see in varchar2,
  head in varchar2
  )
  is
  se varchar2(500);
  begin
  se:=see;
case
when instr(se,'、')=0 then 
      if instr(se,'-')=0 then
       proc_insert(head,se);
     
     else   
      proc_for(head,substr(se,1,3),substr(se,5,3));
     end if;
when instr(se,'、')!=0 then
     loop
  dbms_output.put_line(substr(se,1,instr(se,'、')-1));
  if instr(substr(se,1,instr(se,'、')-1),'-')=0 then
       proc_insert(head,substr(se,1,instr(se,'、')-1));
  else
   proc_for(head,substr(substr(se,1,instr(se,'、')-1),1,3),substr(substr(se,1,instr(se,'、')-1),5,3));
  end if;
   se:=substr(se,instr(se,'、')+1);
   if instr(se,'、')=0 then 
         exit when length(se)<=7;
       
   else
    exit when length(se)<=3;
   end if; 
  
   end loop;
   
      dbms_output.put_line(se);  
   if instr(se,'-')=0 then
   proc_insert(head,se);
   else
   proc_for(head,substr(se,1,3),substr(se,5,3));
   end if;
   
   
  
    end  case;

 end;
  -------------------------------------------------------------------------测试单元格插入
  declare
  see varchar2(100);
  head varchar2(10);
  
   begin
   see:='190-193、750-759、891、895、220-229';
   proc_el(see,head);
    
   end;
  
 select instr(substr('037-042',1 ,(instr('037-042','、')-1)),'-')=0 from dual;
  
  ----------------------------------------------------------------------------------------
     

  
------------------------------------------------创建抽象数据类型
 create type ty_sec as object(
 t1 varchar2(15),
 t2 varchar2(15),
 t3 varchar2(15),
 t4 varchar2(15),
 t5 varchar2(15),
 t6 varchar2(15),
 t7 varchar2(15),
 t8 varchar2(15),
 t9 varchar2(15),
 t10 varchar2(15),
 t11 varchar2(15),
 t12 varchar2(15),
 t13 varchar2(15) 
 )
 -----------------
 select substr('abc',1,0) from dual;
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

oracle数据库日志会保存多久 oracle数据库日志会保存多久 May 10, 2024 am 03:27 AM

Oracle 数据库日志的保留期限取决于日志类型和配置,包括:重做日志:由 "LOG_ARCHIVE_DEST" 参数配置的最大大小决定。归档重做日志:由 "DB_RECOVERY_FILE_DEST_SIZE" 参数配置的最大大小决定。在线重做日志:不归档,在数据库重启时丢失,保留期限与实例运行时间一致。审计日志:由 "AUDIT_TRAIL" 参数配置,默认保留 30 天。

oracle需要多少内存 oracle需要多少内存 May 10, 2024 am 04:12 AM

Oracle 所需内存量取决于数据库大小、活动水平和所需性能水平:用于存储数据缓冲区、索引缓冲区、执行 SQL 语句和管理数据字典缓存。具体数量受数据库大小、活动水平和所需性能水平影响。最佳实践包括设置适当的 SGA 大小、调整 SGA 组件大小、使用 AMM 和监控内存使用情况。

oracle数据库服务器硬件配置要求 oracle数据库服务器硬件配置要求 May 10, 2024 am 04:00 AM

Oracle 数据库服务器硬件配置要求:处理器:多核,主频至少 2.5 GHz,大型数据库建议 32 核以上。内存:小型数据库至少 8GB,中等规模 16-64GB,大型数据库或高负载工作负载高达 512GB 或更多。存储:SSD 或 NVMe 磁盘,RAID 阵列提高冗余和性能。网络:高速网络(10GbE 或更高),专用网卡,低延迟网络。其他:稳定电源、冗余组件、兼容操作系统和软件、散热和冷却系统。

oracle定时任务每天都执行一次创建步骤 oracle定时任务每天都执行一次创建步骤 May 10, 2024 am 03:03 AM

要在 Oracle 中创建每天执行一次的定时任务,需要执行以下三个步骤:创建一个作业。为作业添加一个子作业,并设置其计划表达式为“INTERVAL 1 DAY”。启用作业。

用oracle数据库需要多大内存 用oracle数据库需要多大内存 May 10, 2024 am 03:42 AM

Oracle 数据库所需内存量取决于数据库大小、工作负载类型和并发用户数量。通常建议:小型数据库:16-32 GB,中型数据库:32-64 GB,大型数据库:64 GB 或更多。其他需考虑因素包括数据库版本、内存优化选项、虚拟化和最佳实践(监视内存使用情况、调整分配)。

70B模型秒出1000token,代码重写超越GPT-4o,来自OpenAI投资的代码神器Cursor团队 70B模型秒出1000token,代码重写超越GPT-4o,来自OpenAI投资的代码神器Cursor团队 Jun 13, 2024 pm 03:47 PM

70B模型,秒出1000token,换算成字符接近4000!研究人员将Llama3进行了微调并引入加速算法,和原生版本相比,速度足足快出了快了13倍!不仅是快,在代码重写任务上的表现甚至超越了GPT-4o。这项成果,来自爆火的AI编程神器Cursor背后团队anysphere,OpenAI也参与过投资。要知道在以快着称的推理加速框架Groq上,70BLlama3的推理速度也不过每秒300多token。 Cursor这样的速度,可以说是实现了近乎即时的完整代码文件编辑。有人直呼好家伙,如果把Curs

AI初创集体跳槽OpenAI,Ilya出走后安全团队重整旗鼓! AI初创集体跳槽OpenAI,Ilya出走后安全团队重整旗鼓! Jun 08, 2024 pm 01:00 PM

上周,在内部的离职潮和外部的口诛笔伐之下,OpenAI可谓是内忧外患:-侵权寡姐引发全球热议-员工签署「霸王条款」被接连曝出-网友细数奥特曼「七宗罪」辟谣:根据Vox获取的泄露信息和文件,OpenAI的高级领导层,包括Altman在内,非常了解这些股权回收条款,并且签署了它们。除此之外,还有一个严峻而紧迫的问题摆在OpenAI面前——AI安全。最近,五名与安全相关的员工离职,其中包括两名最著名的员工,“超级对齐”团队的解散让OpenAI的安全问题再次被置于聚光灯下。《财富》杂志报道称,OpenA

oracle怎么启动监听程序 oracle怎么启动监听程序 May 10, 2024 am 03:12 AM

Oracle 监听程序用于管理客户端连接请求。启动步骤包括:登录到 Oracle 实例。找到监听程序配置。使用 lsnrctl start 命令启动监听程序。使用 lsnrctl status 命令验证启动。

See all articles