Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 生成字符串的范围_Sql_Oracle_Plsql_Oracle11g - Fatal编程技术网

Sql 生成字符串的范围

Sql 生成字符串的范围,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,大家好。 我需要你帮我解决这个问题。 我需要在我的一个表中创建一组序列号,为此我想使用存储过程。因此,我想将FirstSN和LastSN作为参数传递给SP,SP将N条记录插入我的表中。序列号由前缀和增量部分组成。 例如,我将SN0001作为FirstSN发送,将SN0100作为LastSN发送,它应该插入以下内容: SN0001 SN0002 SN0003 ... SN0099 SN0100 如果不使用循环,我如何做到这一点 另外,我正在使用oracle 11.2.0Multisync下面的答案

大家好。 我需要你帮我解决这个问题。 我需要在我的一个表中创建一组序列号,为此我想使用存储过程。因此,我想将FirstSN和LastSN作为参数传递给SP,SP将N条记录插入我的表中。序列号由前缀和增量部分组成。 例如,我将SN0001作为FirstSN发送,将SN0100作为LastSN发送,它应该插入以下内容: SN0001 SN0002 SN0003 ... SN0099 SN0100

如果不使用循环,我如何做到这一点


另外,我正在使用oracle 11.2.0

Multisync下面的答案是100%正确的,但请允许我提出另一种解决方案。。。如果记录有一个主键字段(例如零件ID),则创建一个虚拟列,并将其与SN前缀连接起来,或使用序列对象。它保证您的序列号是唯一的,并且是一个可扩展的选项,只需最少的干预,甚至需要一个SP。@mmmmm pie序列号是此表中的主键。问题是,在一个数据库中,我有一个范围为SN001-SN100、SN123-SN135的表。。。在这个数据库中,我需要自己创建序列号使用一个序列和前缀。应该可以解决您的问题。参考oracle Library MultiSync下面的序列回答是100%正确的,但请允许我提出另一个解决方案。。。如果记录有一个主键字段(例如零件ID),则创建一个虚拟列,并将其与SN前缀连接起来,或使用序列对象。它保证您的序列号是唯一的,并且是一个可扩展的选项,只需最少的干预,甚至需要一个SP。@mmmmm pie序列号是此表中的主键。问题是,在一个数据库中,我有一个范围为SN001-SN100、SN123-SN135的表。。。在这个数据库中,我需要自己创建序列号,使用一个带有前缀的序列。应该可以解决您的问题。请参考oracle Library中的序列问题是,增量部分并不总是4个符号长,尽管这可能可行,如果我通过前缀和第一个增量部分以及最后一个增量部分,那么如果没有人提出更好的建议,这将是公认的答案@Maiorov Yury的主要思想是如何生成数字。无论如何,我已经更新了答案。例如,您可以使用LPAD将零添加到左侧。问题是增量部分并不总是4个符号长,但如果我传递前缀、第一个增量部分和最后一个增量部分,这可能会起作用。因此,如果没有人提出更好的建议,这将是公认的答案@Maiorov Yury的主要思想是如何生成数字。无论如何,我已经更新了答案。例如,您可以使用LPAD将零添加到左侧。
select 'SN' || lpad(lvl, length('100')+1, '0') from (select level lvl from dual connect by level <= 100);