主頁 > 知識庫 > oracle(plsql)生成流水號

oracle(plsql)生成流水號

熱門標簽:車瑪仕極限運動場所地圖標注 騰訊地圖標注要費用嗎 七日殺a19.5全地圖標注 電渠外呼系統(tǒng) 外呼電話系統(tǒng)用卡嗎 地圖標注怎么保存 高德地圖標注公司名字大全 N個你智能電銷機器人 廣東營銷智能外呼系統(tǒng)商家

復(fù)制代碼 代碼如下:

CREATE OR REPLACE FUNCTION fn_no_make(v_prefix     VARCHAR2,
                                      v_table_name VARCHAR2,
                                      v_number_col VARCHAR2)
 /*
  * v_prefix:     編碼前綴兩位
  * v_table_name:編碼所在表名
  * v_number_col:編碼所在列名
  */ 
  RETURN VARCHAR2 IS
  v_old_no   VARCHAR2(50); --原編碼
  v_new_no   VARCHAR2(50); --新編碼
  v_old_num  NUMBER;       --原編碼后三位編號
  v_new_num  VARCHAR2(10); --新編碼后三位編號
  v_date_no  VARCHAR2(10); --當前日期編號
  v_sql      VARCHAR2(4000);
BEGIN
  v_sql := 'SELECT MAX(' || v_number_col || ') FROM ' || v_table_name;
  EXECUTE IMMEDIATE v_sql INTO v_old_no;

  v_sql := 'SELECT TO_CHAR(SYSDATE,''YYYYMMDD'') FROM DUAL';
  EXECUTE IMMEDIATE v_sql INTO v_date_no;

  v_old_num := to_number(substr(v_old_no, 12, 3));
  v_new_num := lpad(to_char(v_old_num+1), 3, '0');

  IF v_old_no IS NULL OR substr(v_old_no, 3, 8) > v_date_no THEN
    v_new_no := v_prefix || v_date_no || '-' || '001';
  ELSE
    v_new_no := v_prefix || v_date_no || '-' || v_new_num;
  END IF;

  RETURN v_new_no;
EXCEPTION
  WHEN OTHERS THEN
    dbms_output.put_line(SQLERRM);
END fn_no_make;

您可能感興趣的文章:
  • mybatis+mysql 使用存儲過程生成流水號的實現(xiàn)代碼
  • PHP獲取MySQL執(zhí)行sql語句的查詢時間方法
  • ThinkPHP框架獲取最后一次執(zhí)行SQL語句及變量調(diào)試簡單操作示例
  • mysql 獲取今天、昨天0點時間戳的實例
  • mysql 獲取昨天日期、今天日期、明天日期以及前一個小時和后一個小時的時間
  • sql 流水號獲取代碼實例

標簽:來賓 贛州 玉樹 棗莊 遼寧 長沙 大興安嶺 蘇州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《oracle(plsql)生成流水號》,本文關(guān)鍵詞  oracle,plsql,生成,流水,號,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《oracle(plsql)生成流水號》相關(guān)的同類信息!
  • 本頁收集關(guān)于oracle(plsql)生成流水號的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章