动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

Oracle数据库中获取数据的存储过程示例


发表日期:2008-8-5


>>从一个表A的取得数据插入另一个表B中?

(1)对于表A和表B两个表结构完全相同的话〔字段个数,相应字段的类型等等〕,可以使用

INSERT INTO B SELECT * FROM A;

INSERT INTO B(field1,field2,field3) select A.field1,A.field2,A.field3 from A;

(2) 对于两个表如果字段数不一样,但是有几个字段的结构一样时〔类似于父子关系〕,必须使用 INSERT INTO B(field1,field2) select A.field1,A.field2 from A;


1.用带参数的游标实现insert功能:


CREATE OR REPLACE PROCEDURE GET_DATA(

-- 参数列表:

n_task_id IN number, --任务编号

v_task_name IN varchar2, --任务名称

v_name IN varchar2 -- 名称

)

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

-- PROCEDURE名 :GET_DATA --

-- 処理内容 :从数据源表取得符合条件的的数据插入到目标数据表: --

-- 引数 :n_tas_id 任务ID, --

-- v_task_namek 任务名称, --

-- v_bdw_name 对数据源表限制条件:本地网名称 --

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

IS

--插入行数控制

i_count number(5);

--取数据游标:DATA_CUR(IN_NAME)

--参数:本地网名称:IN_NAME

CURSOR DATA_CUR(IN_NAME VARCHAR2) IS /**注意:参数的定义中不带精度**/

SELECT *

FROM GET_DATA_SRC A

WHERE A.NAME = IN_NAME;

BEGIN

--计数器,控制插入行数

i_count := 0;

--循环插入数据

FOR MYCUR IN DATA_CUR(v_name) LOOP

INSERT INTO ABC(

ROW_ID,

TASK_ID,

TASK_NAME,

GET_DATA_DT,

CUST_ID,

ASSIGN_FLAG,

DEAL_DATE

)VALUES(

SEQ_KD.NEXTVAL,

N_TASK_ID,

V_TASK_NAME,

SYSDATE,

MYCUR.CUST_ID,

'N',

NULL

);

--程序试用阶段,以后会删除satrt

i_count := i_count + 1;

IF i_count >100 THEN

COMMIT;

RETURN;

END IF;

--程序试用阶段,以后会删除end

END LOOP;

--数据commit,程序调试阶段避免大量数据,暂时关闭

--commit;

--------例外处理部分----------------------------

EXCEPTION

WHEN OTHERS THEN

rollback;

END SRBZ_GET_SRBZ_KD_SPEED;

/


2.使用语句拼接法实现insert功能:


注:2.1字符串常量的引号 2.2 变量的引号


CREATE OR REPLACE PROCEDURE ABC(

-- 参数列表:

task_id IN number, --任务编号

task_name IN varchar2, --任务名称

in_NAME IN varchar2 --名称

)

--------------------------- PROCEDURE名 :ABC

-- 処理内容 :从数据源表取得符合条件的的数据插入到目标数据表

-- 引数 :table_src 数据源表

-- table_to 数据插入目标表

-- in_bdw_name 对数据源表限制条件:本地网名称

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

IS

--INSERT_STRING 动态生成的insert语句存放处

INSERT_STRING VARCHAR2(1000);

--数据源表存放处

tableSrc varchar2(500);

--数据插入目标表存放处

tableTarget varchar2(1000);

--数据目标表需要插入值的字段存放处

StrFields varchar2(1000);

BEGIN

--数据源表为:AAA

tableTarget := ' BBB ';

--数据来源

tableSrc := ' select seq_kd.nextval,sysdate,'||task_id||','''||task_name||''', '

||'A.* from AAA A'

||' WHERE A.value='||'''ip-VPDN'''

||'AND A.remark IS NULL';

--需要插入的字段

StrFields := '(ROW_ID,GET_DATA_DT,TASK_ID,TASK_NAME,COST_CTR,SERVICE_ID,'

||'SI_ADDR,SI_SERVER_ID)';

--生成insert语句

INSERT_STRING := 'INSERT INTO ' || tableTarget || StrFields || tableSrc ;

--执行insert语句

execute immediate INSERT_STRING;

--提交事务

commit;

--------例外处理部分-------------------------------------------------------

EXCEPTION

--异常的抛出

WHEN OTHERS THEN

--DBMS_OUTPUT.PUT_LINE('处理过程中出错,程序退出,未执行相关内务');

rollback;

END SRBZ_GET_SRBZ_KD_GSVPDN_FREE;

/

关注此文的读者还看过:
·2012-2-4 9:46:13 ORACLE数据库恢复技术
·2012-2-4 9:45:46 临时文件file#和db_files的关系
·2012-2-4 9:45:18 Oracle开发人员应该具备的几个资源
·2012-2-4 9:44:26 Oracle PL/SQL入门之案例实践
·2012-2-4 9:43:49 ORACLE 10g调度例行任务解放DBA时间(组图)
·2012-2-4 9:43:34 oracle8.1.7 在redhat7.2下的安装
·2012-2-4 9:43:01 必须要熟悉的V$视图
·2012-2-4 9:42:50 oracle的毛病!!
·2012-2-4 9:42:38 Oracle兔死狗烹?(zt)
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
项目外包信息
·ecshop+Discuz! X2+ Home会员整
·寻找网站建设团队或者个人合伙
·LOGO设计外包
·企业网后台程序外包
·ESO关键词优化
·寻中高端网页设计及美工长期合作
·网页美工
·寻求程序合作
·全球连锁餐饮集团网站改版
·预算5-10万元的基于威客、2.0、
·外包一个新闻发布网站 急
·招长期兼职资深设计师合作
·FLASH外包
·产品高端场景摄影
·寻找asp.net开发高手
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<Oracle教程>的内容


数据教程文章分类
SQL教程
SQL技巧
SQL安全
SQL文摘
Oracle教程
MySQL教程
Access教程
DB2教程
Sybase教程
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号