gpt4 book ai didi

oracle - 如何在生成的序列号中附加一个字符串

转载 作者:行者123 更新时间:2023-12-04 06:29:41 24 4
gpt4 key购买 nike

在我的应用程序中,我将 Struts2 用于 UI,将 JPA 用于 DAO 层。以及 Oracle 11G 数据库。

在我的数据库中我创建了一个序列..

CREATE SEQUENCE  "PERK"."EMP_CODE_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 501 CACHE 500 NOORDER  NOCYCLE ;

现在我的要求变了。根据要求,我想将“TMP”附加到我生成的序列号。

例如:如果我的序列号是:1 那么它将给我 TMP000001。

为此,SQL 查询将是这样的..

select 'TMP'||lpad(EMP_CODE_SEQ.nextval,6, '0') test from dual;

但是有什么方法可以在 JPA 中实现上述查询吗?或者在ORACLE中有什么办法可以改变输出顺序吗?

最佳答案

OR is there any way in ORACLE,so we can change the output sequence?

没有。序列仅用于生成数字序列。所以你不能强制它生成除数字之外的任何其他内容。为此,您将需要使用隐式或显式数据类型转换和连接来生成所需格式的字符串。作为替代方案,您可以使用 to_char 函数将序列生成的数字转换为左零填充字符串。

SQL> select to_char(sq_id.nextval, '000000') res
2 from dual
3 /

RES
-------
000004

连接(条或 `concat' 函数):

SQL> select 'TMP' || to_char(sq_id.nextval, '000000') res
2 from dual
3 /

RES
----------
TMP 000006

SQL> select concat('TMP',to_char(sq_id.nextval, '000000')) res
2 from dual
3 /

RES
----------
TMP 000007

关于oracle - 如何在生成的序列号中附加一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com