Oracle

Articles

如何將資料表複製一份到新的資料表中

先說明一下如標題的這種情況會用在哪裡?通常會用在需要大樣修改某個資料表的資料,但是又很擔心,如果改下去,不對的話,還原資料表,要去找DBA跪拜一下,才有可能還原,那還不如單獨備份一下資料表比較好,怎麼做最划算,就備份在自己隔壁,這樣最安全了。 例如在Oracle我們會這樣做: Create table Table_BK20200514 as select * from Table 在MSSQL我們會這樣做: Select * into Table_BK20200514 from Table
技術
0
min.

Oracle SQL遞迴處理

遞迴,英文說法是Recursive,簡單的說就是類似Window中資料夾的概念,可以進行無限分類樹,在資料庫中如何實現遞迴,主要就是透過ID與PID,ID是識別自己的資料,PID是父ID(或上一層的ID),這樣就可以製造出遞迴的結構,Oracle中可以用以下語法把遞迴資料撈出來。 SELECT * FROM TABLE A START WITH A.ID = 'ROOT' CONNECT BY PRIOR A.ID = A.PID
技術
0
minutes

透過SQL句避免資料重複新增

有時候可以透過SQL句就能避免資料重複新增,當然也可以用老派的方式,先Select Count(1)確定沒有資料後再Insert,單句SQL就能做到,請參考以下適用於Oracle的情況: INSERT INTO TABLE1 (Column1, ...
技術
0
minutes

Oracle MINUS比較兩個資料表的資料

早期要比對A與B兩個資料表的資料是否一致,作法大概就是JOIN兩個資料表的方式比對,相當辛苦,但其實Oracle有一個語法很特別,可以直接進行比對,那就是MINUS,去掉上方與下方相同資料後印出結果,如下: SELECT COLUMN1,COLUMN2 FROM TABLE_A MINUS SELECT COLUMN1,COLUMN2 FROM TABLE_B 如果要將兩個資料表,只要有差異就列出來,那可以再加入一個語法UNION SELECT 'A' SOURCE,COLUMN1,COLUMN2 FROM TABLE_A MINUS SELECT 'A' SOURCE,COLUMN1,COLUMN2 FROM TABLE_B UNION SELECT 'B' SOURCE,COLUMN1,COLUMN2 FROM TABLE_B MINUS SELECT 'B' SOURCE,COLUMN1,COLUMN2 FROM TABLE_A
技術
0
minutes