Oracle pl / sql脚本,增加数字

时间:2015-05-22 19:21:20

标签: oracle plsql

寻找一种使用等效的java ++语法来增加变量来创建Oracle脚本的方法。

即:

int id=10
DELETE MYTABLE;
INSERT INTO MYTABLE(ID, VALUE) VALUES (id++, 'a value');
INSERT INTO MYTABLE(ID, VALUE) VALUES (id++, 'another value');
...

尝试使用变量而不是序列,因此我可以多次重新运行此结果。

2 个答案:

答案 0 :(得分:5)

PL / SQL没有++句法糖。您需要明确更改变量的值。

DECLARE
  id integer := 10;
BEGIN
  DELETE FROM myTable;
  INSERT INTO myTable( id, value ) VALUES( id, 'a value' );
  id := id + 1;
  INSERT INTO myTable( id, value ) VALUES( id, 'another value' );
  id := id + 1;
  ...
END;

此时,由于您希望确保一致性,因此您可能最好对id值进行硬编码,就像您对value值进行硬编码一样,即

BEGIN
  DELETE FROM myTable;
  INSERT INTO myTable( id, value ) VALUES( 10, 'a value' );
  INSERT INTO myTable( id, value ) VALUES( 11, 'another value' );
  ...
END;

答案 1 :(得分:0)

您可以创建SEQUENCE来增加数字。

----CREATING SEQUENCE:                                                                                                                                                      

    SQL> create sequence seq_name
    2  start with 1
    3  increment by 1
    4  NOCACHE
    5  NOCYCLE
    6  ;

创建序列。

----EXECUTION:                                                                                                                                            
SQL> select seq_name.nextval from dual;   

NEXTVAL                                                                                                                                         
1

SQL> select seq_name.nextval from dual;                                                                                                                 

NEXTVAL     
2    

您还可以创建一个可以在任何地方调用的函数:

----CREATING FUNCTION:     
create or replace function sequence_func(a_number IN Number)
RETURN Number
AS
id Number;                                                                                                                                         
Begin                                                                                                                                              
select seq_name.nextval into id from dual;    
Return id;
end;
/

创建的功能。

----EXECUTION:  
SQL> select  sequence_func(1) seq from dual;  
seq
1  

P.S: startwith 增量值可根据您的要求设置。