My First PL/SQL Procedure

create or replace procedure cuidong_insert_records(p_ny in varchar2) is

  qystr         varchar2(260) := '大庆,吉林,辽河,冀东,江苏,胜利,华东分公司,储气库,                                  中原,河南,中海油,海南,华北,江汉,浙江勘探,';  qy            MK_CSYB_XBSC.QY%TYPE;  qy_position   number(2);  qy_loop       number(2) := 1;    dwdmstr       varchar2(300) :='YKGFGS,EKGFGS,SKGFGS,JDFWZX,XWWHZX,TBWGS,GHSHGS,GSSHGS,                                 JSJDZX,SYJLZX,HSE,GCJL,TXGS,GSGS,JS,SD,KYGS,';  temp_dwdmstr  varchar2(300);  dwdm          MK_CSYB_XBSC.DWDM%TYPE;  dwdm_position number(2);  dwdm_loop     number(2) := 1;    do_count      number(2) := 0;begin  loop    do_count := do_count + 1;    qy_position := instr(qystr,',');    qy := substr(qystr,1,qy_position-1);    qystr := substr(qystr,qy_position+1,length(qystr));    DBMS_OUTPUT.PUT_LINE(do_count||'  '||qy_position||'  '||qy||'     '||p_ny);        dwdm_loop := 1;    temp_dwdmstr := dwdmstr;    loop      dwdm_position := instr(temp_dwdmstr,',');      dwdm := substr(temp_dwdmstr,1,dwdm_position-1);      temp_dwdmstr := substr(temp_dwdmstr,dwdm_position+1,length(temp_dwdmstr));      DBMS_OUTPUT.PUT_LINE('         '||dwdm_position||'  '||dwdm||'  '||p_ny);            insert into MK_CSYB_DBSC( NY, QY, LRRQ, LRRY, ZBDW, DWDM )          values(p_ny,qy,date'2005-04-05','东部市场录入','市场开发部',dwdm);            dwdm_loop := dwdm_loop + 1;      if dwdm_loop = 18 then        exit;      end if;    end loop;        qy_loop := qy_loop + 1;    if qy_loop = 16 then      exit;    end if;  end loop;    commit; exception when others then rollback;end cuidong_insert_records;

时间: 2024-10-31 06:43:52

My First PL/SQL Procedure的相关文章

PL/SQL游标(原创)

游标的相关概念及特性定义映射在结果集中某一行数据的具体位置,类似于C语言中的指针.即通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作.游标的分类显示游标:即用户自定义游标,专门用于处理select语句返回的多行数据隐式游标:系统自动定义的游标,记录集只有单行数据,用于处理select into 和DML语句游标使用的一般过程:显示游标:声明, 打开, 读取, 关闭隐式游标:直接使用读取,声明.打开.关闭都是系统自动进行的显示游标的过程描述a.声明游标CURSOR

PL/SQL的存储过程和函数(原创)

存储过程概述 存储过程是子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库.是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出.一个存储过程通常包含定义部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用.过程定义CREATE [OR REPLACE]PROCEDURE procedure_name[(argument_name [IN | OUT | IN OUT] argument_type)]AS | ISBEGIN    p

[转贴]Oracle PL/SQL语言基础

oracle|sql语言 [转贴]Oracle PL/SQL语言基础 Oracle PL/SQL语言基础   PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序.    PL/SQL的优点    从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有

PL/SQL开发中动态SQL的使用方法

动态 内容摘要:在PL/SQL开发过程中,使用SQL,PL/SQL可以实现大部份的需求,但是在某些特殊的情况下,在PL/SQL中使用标准的SQL语句或DML语句不能实现自己的需求,比如需要动态建表或某个不确定的操作需要动态执行.这就需要使用动态SQL来实现.本文通过几个实例来详细的讲解动态SQL的使用. 本文适宜读者范围:Oracle初级,中级 系统环境: OS:windows 2000 Professional (英文版) Oracle:8.1.7.1.0 正文: 一般的PL/SQL程序设计中

Oracle PL/SQL语言基础

oracle|sql语言 Oracle PL/SQL语言基础  2002-8-23   Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独

PL/SQL的异常处理机制的初步探讨

PL/SQL中如何在抛出异常后继续 这个问题曾一度让我郁闷,很有用的技巧! SQL> declare 2 type testitb is table of number index by binary_integer; a testitb; b number; 3 4 5 begin a(10):=11; 6 7 a(1):=12; a(4):=4; 8 9 for i in a.first .. a.last loop 10 11 b:=i; 12 dbms_output.put_line('

利用PL\SQL实现Oracle表空间的迁移

在9i的时候,表空间的迁移使用EXP/IMP来实现.在10g中,除了使用EXP/IMP之外,还可以使用数据泵EXPDP/IMPDP,以及RMAN的命令TRANSPORT TABLESPACE命令,除此之外,还可以通过PL/SQL包DBMS_STREAMS_TABLESPACE_ADM来实现. 这一篇介绍PULL_SIMPLE_TABLESPACE过程. Oracle的DBMS_STREAMS_TABLESPACE_ADM包提供了8个过程:ATTACH_TABLESPACES.ATTACH_SIM

PL/SQL下SQL结果集以html形式发送邮件

       在运维的过程中,有时候需要定时将SQL查询的数据结果集以html表格形式发送邮件,因此需要将SQL查询得到的结果集拼接成html代码.对于这种情形通常有二种方式来完成.一是直接使用cron job来定时轮询并借助os级别的邮件程序来完成.其查询结果集可以直接在SQL*Plus下通过设置html标签自动实现html表格形式.一种方式是在Oracle中使用scheduler job来定时轮询.这种方式需要我们手动拼接html代码.本文即是对第二种情形展开描述. 关于PL/SQL下如何发

PL/SQL动态SQL(原创)

概述 使用动态SQL是在编写PL/SQL过程时经常使用的方法之一.很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行SQL查询语句,对于这种情况需要使用动态SQL来完成.再比如,对于分页的情况,对于不同的表,必定存在不同的字段,因此使用静态SQL则只能针对某几个特定的表来形成分页.而使用动态的SQL,则可以对不同的表,不同的字段进行不同的分页.这些情况的处理通常都是用动态SQL来完成. 动态SQL和静态SQL静态SQL静态SQL通常用于完成可以确定的任务.比如传递部门号调用存