gpt4 book ai didi

sql - 使用 PL SQL 的序列

转载 作者:搜寻专家 更新时间:2023-10-30 21:39:36 24 4
gpt4 key购买 nike

我知道如何在 pl sql 中创建一个序列。但是,我如何将值设置为全部有 3 位数字?当我创建一个序列时,是否有另一个 sql 语句来执行此操作?

举个例子:

000
001
012
003

谢谢大家!

最佳答案

首先,明确一点,您不在 PL/SQL 中创建序列。您只能在 SQL 中创建序列。

其次,如果您希望一列恰好存储三位数字,您需要将数据类型设置为 VARCHAR2(或其他一些字符串类型),而不是更常见的 NUMBER 因为 NUMBER 根据定义不存储前导零。当然,您可以这样做,但这很不寻常。

就是说,您可以使用“fm009”格式掩码从数字序列中生成一个恰好包含 3 个字符的字符串(需要“fm”位以确保您不会获得额外的空格——您可以 TRIM TO_CHAR 调用的结果,并免除掩码的“fm”位)。

SQL> create table t( col1 varchar2(3) );

Table created.

SQL> create sequence t_seq;

Sequence created.

SQL> ed
Wrote file afiedt.buf

1 insert into t
2 select to_char( t_seq.nextval, 'fm009' )
3 from dual
4* connect by level <= 10
SQL> /

10 rows created.

SQL> select * from t;

COL
---
004
005
006
007
008
009
010
011
012
013

10 rows selected.

关于sql - 使用 PL SQL 的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319315/

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