2011-07-12 17 views
0

データをテーブルに挿入する必要があります。これは-1、-2、-3などの負の数値を持つ列を持ちます。-50までです。オラクルのinsert文の値を受け取ります(ネガティブ番号)

私はシーケンスを使用することを考えましたが、負の値は受け付けません。

どのように私はgenarate私は値を挿入することを意味することができますか?丹recourdを持つ任意のテーブルのための

答えて

0

検索は、あなたが好き数え、その後、書き込み:

は、データを生成するために選択を使用します。

select (rownum * -1) as negRowNum from whatevertableyoufound where rownum <= 50 
0

使用0 - rownum

SELECT 0 - rownum 
FROM DUAL 
CONNECT BY LEVEL <= 50; 

0-ROWNUM 
-1 
-2 
-3 
-4 
-5 
... 
3

「私はシーケンスを使用するのではと思ったが、それは文句を言わない負の値を受け入れます。」

本当ですか?

SQL> create table t1 (c1 number) 
    2/

Table created. 

SQL> create sequence myseq increment by -1 
    2/

Sequence created. 

SQL> insert into t1 values (myseq.nextval) 
    2/

1 row created. 

SQL> r 
    1* insert into t1 values (myseq.nextval) 

1 row created. 

SQL> r 
    1* insert into t1 values (myseq.nextval) 

1 row created. 

SQL> select * from t1 
    2/

     C1 
---------- 
     -1 
     -2 
     -3 

SQL> 

どのバージョンのデータベースを使用していますか?これはOracle 11g R1からのものですが、最近の機能ではないと思います。

関連する問題