Oracle数据库中获取数据的存储过程示例
2008-09-04 12:50:09 来源:WEB开发网--程序试用阶段,以后会删除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;
/
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
赞助商链接