2016-10-23 5 views
0

私はMS SQL Serverで作業する前に、最近Oracleに移行しました。なぜ新しく挿入された行oracle databse 12c ..の表の上部に表示されるのか

Oracleのテーブルにデータを挿入するJavaアプリケーションを作成しましたが、SQLのようなものではなく、テーブルの最上部にデータを挿入するものがあります。私はテーブルの下にそれを挿入したい。どうすればいいの?

ユーザーテーブルは、Javaアプリケーションによって自動的にインクリメントされるユーザーIDで構成されています。

私はSQLデベロッパーを使ってデータをソートする方法を知っていますが、私が作成したアプリは最後のレコードとして 'U002'を取るため、このデフォルトの保存スタイルを修正する必要があります。

+0

それはちょうどそのように表示されます。何が表示の取引。 'Order by'を追加して正しい順序で取得する –

+2

リレーショナルデータベースのテーブルは、ANSI SQLリレーショナルデータベースの概念ごとに順序付けられていない行セットです。このように、最初、最後、上または下はありません。結果セットの順序を保証するには、SQLの 'ORDER BY'節が必要です。 'ORDER BY'がなければ、返される行のシーケンスは未定義です。 –

答えて

0

まあ、単純なテーブル構造はヒープです。あなたがテーブルを作成し、共通のヒープテーブルの型を指定しない場合。その意味は、新しい行が空きの表スペースに挿入される可能性があります(実際にはいくつかのルールがありますが、今ではそれを忘れるかもしれません)。これは、注文することなく、新しい行がselectの出力になる場所を予測できないことを意味します。 結果をソートする場合は、オーダーを句で指定する必要があります。あなたはORDERせずに何のためを持つことはできませんTAT

select * 
    from user_tbl 
order by userid 
0

だけの簡単な例では、参照します

SQL> create table unsortedTable(a number, b varchar2(1000)); 

Table created. 

SQL> insert into unsortedTable 
    2 select level, lpad('X', 1000, 'X') 
    3 from dual 
    4 connect by level <=10; 

10 rows created. 

SQL> delete unsortedTable where a between 4 and 5; 

2 rows deleted. 

SQL> insert into unsortedTable 
    2 select -level, lpad('Y', 1000, 'Y') 
    3 from dual 
    4 connect by level <=4; 

4 rows created. 

SQL> select a, substr(b, 1, 5) 
    2 from unsortedTable; 

     A SUBSTR(B,1,5) 
---------- -------------------- 
     1 XXXXX 
     2 XXXXX 
     3 XXXXX 
     6 XXXXX 
     7 XXXXX 
     -1 YYYYY 
     -2 YYYYY 
     8 XXXXX 
     9 XXXXX 
     10 XXXXX 
     -3 YYYYY 
     -4 YYYYY 

12 rows selected. 

SQL> 

、同じ手順の操作を二insertステートメントに/*+ append */ヒントを追加し、WILギブ:

SQL> select a, substr(b, 1, 5) 
    2 from unsortedTable; 

     A SUBSTR(B,1,5) 
---------- -------------------- 
     1 XXXXX 
     2 XXXXX 
     3 XXXXX 
     6 XXXXX 
     7 XXXXX 
     8 XXXXX 
     9 XXXXX 
     10 XXXXX 
     -1 YYYYY 
     -2 YYYYY 
     -3 YYYYY 
     -4 YYYYY 

12 rows selected. 

これは、APPENDが信頼できる方法または注文を提供するわけではありません。

関連する問題