游标 原理 oracle,Oracle 游标总结+整理

createorreplacefunctionfun_config_glide_num(p_classvarchar2,

p_columnvarchar2)/**

* 流水帐号配置_oracle

* author:ai bo 2010.02.23

*  p_table varchar2 表名

*  p_website varchar2 自定义开头字符*/returnvarchar2asv_curIdinteger;--v_seq       varchar2(50);--v_seq_value number;v_sqlvarchar2(200);

v_retnumber(3);

v_numvarchar2(20);

p_tablevarchar2(30);

p_websitevarchar2(20);

p_lengthvarchar2(3);

t_classvarchar2(20);

t_columnvarchar2(20);begint_class  :=p_class;

t_column :=p_column;

v_sql    :='SELECT lszh_tname,lszh_mark,lszh_num FROM lszh_table WHERE lszh_cname ='||chr(39)||t_class||chr(39)||'and lszh_column='||chr(39)||t_column||chr(39)||'';

v_curId  :=DBMS_SQL.OPEN_CURSOR;--为处理打开光标DBMS_SQL.PARSE(v_curId, v_Sql, DBMS_SQL.native);--分析语句DBMS_SQL.DEFINE_COLUMN(v_curId,1, p_table,128);--定义动态游标所能得到的对应值DBMS_SQL.DEFINE_COLUMN(v_curId,2, p_website,128);

DBMS_SQL.DEFINE_COLUMN(v_curId,3, p_length,128);

v_ret :=DBMS_SQL.EXECUTE(v_curId);--执行语句loopifDBMS_SQL.FETCH_ROWS(v_curId)=0thenexit;endif;

DBMS_SQL.COLUMN_VALUE(v_curId,1, p_table);--将所取得的游标数据赋值到相应的变量--DBMS_OUTPUT.PUT_LINE(p_table);DBMS_SQL.COLUMN_VALUE(v_curId,2, p_website);--DBMS_OUTPUT.PUT_LINE(p_website);DBMS_SQL.COLUMN_VALUE(v_curId,3, p_length);--DBMS_OUTPUT.PUT_LINE(p_length);endloop;

DBMS_SQL.CLOSE_CURSOR(v_curid);--关闭一个动态游标v_num :=fun_get_glide_num(trim(p_table), trim(p_website), trim(p_length));returnv_num;end;createorreplacefunctionfun_get_glide_num(p_tablevarchar2,p_websitevarchar2,p_lengthnumber)/**

* 流水帐号创建oracle版本

* author : ai bo 2010.02.23

*  p_table varchar2 表名

*  p_website varchar2 自定义开头字符*/returnvarchar2asv_seqvarchar2(50);

v_seq_valuenumber;

v_sqlvarchar2(200);

v_numvarchar2(20);beginv_seq :='seq_'||p_table;

v_sql :='select'||v_seq||'.nextval from dual';

dbms_output.put_line(v_sql);executeimmediate v_sqlintov_seq_value;selectlpad(v_seq_value, p_length,'0')intov_numfromdual;

v_num :=p_website||v_num;returnv_num;end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值