问题在于提出一个发布脚本,该脚本将接受环境编号并适当地设置序列的“Start With”值.理想情况下,我想使用这样的东西:
ACCEPT EnvironNum PROMPT 'Enter the Environment Number: '--[more scripting]CREATE SEQUENCE seq1 START WITH &EnvironNum*100000;--[more scripting]
这不起作用,因为您无法在DDL中计算数值表达式.
另一种选择是通过PL / sql使用动态sql创建序列.
ACCEPT EnvironNum PROMPT 'Enter the Environment Number: '--[more scripting]EXEC execute immediate 'CREATE SEQUENCE seq1 START WITH ' || &EnvironNum*100000;--[more scripting]
但是,我宁愿避免这种解决方案,因为我通常会尽量避免在PL / sql中发出DDL.
最后,我提出的第三个选项是简单地接受Start With值作为替换变量,而不是环境号.
有没有人更好地考虑如何解决这个问题?
解决方法 您可以使用ColUMN XX NEW_VALUE YY语法在sql * Plus中执行计算并将结果存储在变量中:sql> col sequence_num new_value seqsql> select &EnvironNum * 1000000 sequence_num from dual;Enter value for environnum: 2old 1: select &EnvironNum * 1000000 sequence_num from dualnew 1: select 2 * 1000000 sequence_num from dualSEQUENCE_NUM------------ 2000000sql> create sequence scott.seq1 start with &seq;old 1: create sequence scott.seq1 start with &seqnew 1: create sequence scott.seq1 start with 2000000Sequence created.总结
以上是内存溢出为你收集整理的动态设置Oracle序列的“Start With”值全部内容,希望文章能够帮你解决动态设置Oracle序列的“Start With”值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)