最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

oracle?指定類(lèi)型和指定位數(shù)創(chuàng)建序列號(hào)的代碼詳解

 更新時(shí)間:2022年05月17日 15:01:22   作者:gblfy  
這篇文章主要介紹了oracle?指定類(lèi)型和指定位數(shù)創(chuàng)建序列號(hào),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、腳本部分

1. 表結(jié)構(gòu)

有注釋

-- Create table
create table LDMAXNO
(
  NOTYPE  VARCHAR2(17) not null,
  NOLIMIT VARCHAR2(12) not null,
  MAXNO   INTEGER not null
);
-- Add comments to the table 
comment on table LDMAXNO
  is '產(chǎn)生最大的流水號(hào),所有的號(hào)碼從1開(kāi)始';
-- Add comments to the columns 
comment on column LDMAXNO.NOTYPE
  is '含義描述:1、號(hào)碼類(lèi)型';
comment on column LDMAXNO.NOLIMIT
  is '含義描述:1、號(hào)碼限制條件';
comment on column LDMAXNO.MAXNO
  is '含義描述:1、當(dāng)前最大值';
-- Create/Recreate primary, unique and foreign key constraints 
alter table LDMAXNO
  add constraint PK_LDMAXNO primary key (NOTYPE, NOLIMIT);

2. 函數(shù)

  create or replace function CreateMaxNos(cNoType  in ldmaxno.notype%type,
                                       cNoLimit in ldmaxno.nolimit%type)
  return integer is
  pragma autonomous_transaction;
  tMaxNo integer := 0; --初始化賦值等于0,定義返回變量
begin
  --最大數(shù)加1
  update LDMaxNo
     set MaxNo = MaxNo + 1
   where NoType = cNoType
     and NoLimit = cNoLimit
  Returning MaxNo Into tMaxNo; --取出最大數(shù)
  If (Sql%Notfound) then
    --第一次向數(shù)據(jù)庫(kù)中插入最大數(shù)為 1 的記錄
    Insert Into LDMaxNo
      (NOTYPE, NOLIMIT, MAXNO)
    values
      (cNoType, cNoLimit, 1);
    tMaxNo := 1;
  End If;
  commit;

  return(tMaxNo); --返回結(jié)果
end CreateMaxNos;
/

二、代碼部分

2.1. xml

DullMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gblfy.business.mapper.DullMapper">

    <select id="getMaxNo" resultType="java.lang.String">
         select createmaxno(#{cNoType},#{cNoLength}) from dual
    </select>
</mapper>

2.2. 接口

DullMapper.java

package com.gblfy.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

public interface DullMapper extends BaseMapper {

    /**
     * 功能:產(chǎn)生指定長(zhǎng)度的流水號(hào),一個(gè)號(hào)碼類(lèi)型一個(gè)流水
     * @param cNoType 流水號(hào)的類(lèi)型
     * @param cNoLength 流水號(hào)的長(zhǎng)度
     * @return 返回產(chǎn)生的流水號(hào)碼
     */
    String getMaxNo(@Param("cNoType") String cNoType, @Param("cNoLength") int cNoLength);
}

2.3. api接口

package com.gblfy.business.service;
public interface SysMaxNoService {
    /**
     * 功能:產(chǎn)生指定長(zhǎng)度的流水號(hào),一個(gè)號(hào)碼類(lèi)型一個(gè)流水
     *
     * @param cNoType   流水號(hào)的類(lèi)型
     * @param cNoLength 流水號(hào)的長(zhǎng)度
     * @return 返回產(chǎn)生的流水號(hào)碼
     */
    String createMaxNo(String cNoType, int cNoLength);
}

2.4. api實(shí)例

package com.gblfy.business.service.impl;
import com.gblfy.business.mapper.DullMapper;
import com.gblfy.business.service.SysMaxNoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigInteger;
@Service
public class SysMaxNoServiceImpl implements SysMaxNoService {
    private final static Logger logger = LoggerFactory.getLogger(SysMaxNoServiceImpl.class);
    @Resource
    private DullMapper dullMapper;
    /**
     * 功能:產(chǎn)生指定長(zhǎng)度的流水號(hào),一個(gè)號(hào)碼類(lèi)型一個(gè)流水
     *
     * @param cNoType   流水號(hào)的類(lèi)型
     * @param cNoLength 流水號(hào)的長(zhǎng)度
     * @return 返回產(chǎn)生的流水號(hào)碼
     */
    @Override
    public String createMaxNo(String cNoType, int cNoLength) {
        if ((cNoType == null) || (cNoType.trim().length() <= 0) ||
                (cNoLength <= 0)) {
            logger.info("NoType長(zhǎng)度錯(cuò)誤 {} NoLength錯(cuò)誤", cNoType, cNoLength);
            return null;
        }
        cNoType = cNoType.toUpperCase();
        String tReturn = "";
        String cNoLimit = "SN";
        BigInteger tMaxNo = new BigInteger("0");
        tReturn = cNoLimit;
        try {
            String result = dullMapper.getMaxNo(cNoType, cNoLength);
            tMaxNo = new BigInteger(result);
        } catch (Exception e) {
            e.printStackTrace();
            logger.info("生成流水號(hào)出現(xiàn)異常,請(qǐng)核實(shí)!");
        }
        String tStr = tMaxNo.toString();
        //將生成的流水號(hào)進(jìn)行加工處理
        tStr = LCh(tStr, "0", cNoLength);
        tReturn = tStr.trim();
        return tReturn;
    }
    /**
     * 將生成的流水號(hào)進(jìn)行加工處理
     * <p>
     * 1.判斷是否滿足指定長(zhǎng)度,如果不滿足前面用0來(lái)補(bǔ)位
     * 2.將生成的流水號(hào)進(jìn)行去空格處理
     * 3.將最終的流水號(hào)進(jìn)行字符串拼接
     * </P>
     *
     * @param sourString
     * @param cChar
     * @param cLen
     * @return
     */
    private String LCh(String sourString, String cChar, int cLen) {
        int tLen = sourString.length();
        int i, iMax;
        String tReturn = "";
        if (tLen >= cLen) {
            return sourString;
        }
        //1.判斷是否滿足指定長(zhǎng)度,如果不滿足前面用0來(lái)補(bǔ)位
        iMax = cLen - tLen;
        for (i = 0; i < iMax; i++) {
            tReturn += cChar;
        }
        //2.將生成的流水號(hào)進(jìn)行去空格處理
        //3.將最終的流水號(hào)進(jìn)行字符串拼接
        tReturn = tReturn.trim() + sourString.trim();
        return tReturn;
    }
}

2.5. 控制層

package com.gblfy.business.controller;
import com.gblfy.business.service.SysMaxNoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * 生成指定類(lèi)型+位數(shù)的流水號(hào)
 *
 * @Author gblfy
 * @Date 2022-05-16 20:13
 **/
@RestController
public class SysMaxNoController {
    @Autowired
    private SysMaxNoService maxNoService;
    /**
     * 生成指定類(lèi)型+位數(shù)的流水號(hào)
     *
     * @param cNoType
     * @param cNoLength
     * @return
     */
    @GetMapping("/generate/serial/number")
    public String generateSerialNumber(@RequestParam(name = "cNoType", required = false, defaultValue = "cNoType") String cNoType,
                                       @RequestParam int cNoLength) {
        return maxNoService.createMaxNo(cNoType, cNoLength);
    }
}

三、測(cè)試

3.1. 效果圖

到此這篇關(guān)于oracle 指定類(lèi)型和指定位數(shù)創(chuàng)建序列號(hào)的文章就介紹到這了,更多相關(guān)oracle創(chuàng)建序列號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • oracle通過(guò)存儲(chǔ)過(guò)程上傳list保存功能

    oracle通過(guò)存儲(chǔ)過(guò)程上傳list保存功能

    這篇文章主要介紹了oracle通過(guò)存儲(chǔ)過(guò)程上傳list保存功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • oracle 11g下載、安裝、使用圖文教程

    oracle 11g下載、安裝、使用圖文教程

    這篇文章主要介紹了oracle 11g下載、安裝、使用圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Oracle常用命令大全集

    Oracle常用命令大全集

    Oracle常用命令大全集...
    2007-03-03
  • Oracle中的table()函數(shù)使用

    Oracle中的table()函數(shù)使用

    這篇文章主要介紹了Oracle中的table()函數(shù)的使用,提高查詢效率,利用table()函數(shù),可接收輸入?yún)?shù),然后將pl/sql?返回的結(jié)果集代替table,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Oracle19c安裝與基本配置教程(超詳細(xì)!)

    Oracle19c安裝與基本配置教程(超詳細(xì)!)

    oracle19c數(shù)據(jù)庫(kù)安裝相對(duì)于oracle12c安裝還是有些不一樣的,所以今天再來(lái)記錄一下安裝過(guò)程,下面這篇文章主要給大家介紹了關(guān)于Oracle19c安裝與基本配置的超詳細(xì)教程,需要的朋友可以參考下
    2023-01-01
  • Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵

    Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵

    這篇文章主要介紹了Oracle批量執(zhí)行sql語(yǔ)句之禁用所有表的外鍵的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Oracle安裝卸載圖文教程詳解

    Oracle安裝卸載圖文教程詳解

    這篇文章主要為大家介紹了Oracle安裝卸載的詳細(xì)圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • oracle查詢所有表信息表字段詳細(xì)示例

    oracle查詢所有表信息表字段詳細(xì)示例

    最近在工作中遇到個(gè)需求,要在Oracle數(shù)據(jù)庫(kù)中查詢表的所有字段、字段類(lèi)型和字段說(shuō)明,所以這篇文章主要給大家介紹了關(guān)于oracle查詢所有表信息表字段的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Oracle 10G:PL/SQL正規(guī)表達(dá)式(正則表達(dá)式)手冊(cè)

    Oracle 10G:PL/SQL正規(guī)表達(dá)式(正則表達(dá)式)手冊(cè)

    Oracle Database 10g 的一個(gè)新特性大大提高了您搜索和處理字符數(shù)據(jù)的能力。這個(gè)特性就是正規(guī)表達(dá)式,是一種用來(lái)描述文本模式的表示方法。很久以來(lái)它已在許多編程語(yǔ)言和大量 UNIX 實(shí)用工具中出現(xiàn)過(guò)了。
    2009-06-06
  • oracle中的substr()函數(shù)用法實(shí)例詳解

    oracle中的substr()函數(shù)用法實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于oracle中substr()函數(shù)用法的相關(guān)資料,substr函數(shù)是用于字符串的截取的函數(shù),只適用于string類(lèi)型,并不適用于字符數(shù)組,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

长宁区| 东平县| 墨竹工卡县| 合阳县| 高安市| 衡南县| 弥勒县| 连南| 柳河县| 成都市| 金沙县| 改则县| 亚东县| 新津县| 西平县| 昌都县| 正镶白旗| 沛县| 包头市| 延川县| 娄底市| 芮城县| 来宾市| 邢台市| 抚宁县| 肥西县| 潼关县| 灌南县| 普安县| 连山| 溧阳市| 米易县| 比如县| 三河市| 合肥市| 南溪县| 富锦市| 兴义市| 富川| 清徐县| 如皋市|