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;