a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

從Oracle數據庫中讀取數據自動生成INSERT語句的方法

2020-07-26 13:58:45
字體:
來源:轉載
供稿:網友

Oracle INSERT 語句

方法1

我估計有點 SQL 基礎的人都會寫 INSERT 語句。下面是 SQL 標準寫法。

INSERT INTO employees (employee_id, name) VALUES (1, 'Zhangsan');INSERT INTO employees VALUES (1, 'Shangbo');

方法2

其實, Oracle 還支持下面的寫法,作用和上面的語句完全相同。

INSERT INTO (SELECT employee_id, name FROM employees) VALUES (2, 'Lisi');

方法3

此外,同其他數據庫一樣,Oracle 也支持下面這種寫法。

INSERT INTO employeesSELECT 3, 'Wangwu' FROM DUAL;

方法4

下面這種寫法可以實現列轉行,如我們有下面的表存儲原始數據,原始數據可能從文件中來。

create table sales_input_table (prod_id    number(9,0),amt_mon    number(9,6),amt_tue    number(9,6),amt_wed    number(9,6),amt_thu    number(9,6),amt_fri    number(9,6));insert into sales_input_table values (1, 100.0, 200.0, 300.0, 400.0, 500.0);

下面我們通過一個 SQL 把上面的數據插入到下面的表中實現列轉行。

CREATE TABLE sales (prod_id    number(9,0),time_id    date,amount     number(9,0));INSERT ALLINTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE, amt_mon)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 1, amt_tue)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 2, amt_wed)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 3, amt_thu)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 4, amt_fri)SELECT prod_id, amt_mon, amt_tue, amt_wed, amt_thu, amt_fri FROM sales_input_table;

方法5

下面這種寫法可以幫我們一次性把一個表中的數據倒入到多個表中,否則我們必須寫多條 SQL 實現同樣的功能。

INSERT ALLWHEN order_total <= 100000 THENINTO small_ordersWHEN order_total > 100000 AND order_total <= 200000 THENINTO medium_ordersWHEN order_total = 500000 THENINTO special_ordersWHEN order_total > 200000 THENINTO large_ordersELSEINTO large_ordersSELECT order_id, order_total, sales_rep_id, customer_id FROM orders;

注意,當 order_total 大于 200000 時,orders 會被插入到 large_orders 和 special_orders 中。這可能不是你想要的結果,如果你只想讓 orders 插入到 special_orders 表中,你只需要把 ALL 替換成 FIRST, 如下。

INSERT FIRSTWHEN order_total <= 100000 THENINTO small_ordersWHEN order_total > 100000 AND order_total <= 200000 THENINTO medium_ordersWHEN order_total = 500000 THENINTO special_ordersWHEN order_total > 200000 THENINTO large_ordersELSEINTO large_ordersSELECT order_id, order_total, sales_rep_id, customer_id FROM orders;

從Oracle數據庫中讀取數據,自動生成INSERT語句

創建表

-- Create tablecreate table TB_ACCIDENT_TYPE( ID     NUMBER(20) not null, NAME    VARCHAR2(50), PATH    VARCHAR2(20), PARENTPATH VARCHAR2(20), URL    VARCHAR2(20), TYPE    VARCHAR2(2), DESCR   VARCHAR2(50))

顯示表中的數據

select 'INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES(' || '''' || ID ||'''' || ','|| '''' || NAME || '''' || ','|| '''' || PATH || '''' || ','|| '''' || PARENTPATH || '''' || ','|| '''' || URL || '''' || ','|| '''' || TYPE || '''' || ','|| '''' || DESCR || '''' || ');'  From tb_accident_type order by ID

顯示結果

INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('1','事故類型關聯 ','1','0','','0','');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('2','危險源類型關聯','2','0','','','');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('3','危險品類型關聯','3','0','','','');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('4','生產企業類型關聯','4','0','','','');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('5','區域關聯','5','0','','0','');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('568','物體打擊','1.1','1','','1','物體打擊');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('569','車輛傷害','1.2','1','','1','車輛傷害');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('570','機器傷害','1.3','1','','1','機器傷害');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('571','起重傷害','1.4','1','','1','起重傷害');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('572','觸電','1.5','1','','1','觸電');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('573','淹溺','1.6','1','','1','淹溺');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('574','灼燙','1.7','1','','1','灼燙');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('575','火災','1.8','1','','1','火災');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('576','高處墜落','1.9','1','','1','高處墜落');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('577','坍塌','1.10','1','','1','坍塌');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('578','冒頂片幫','1.11','1','','1','冒頂片幫');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('580','透水','1.12','1','','1','透水');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('581','波炮','1.13','1','','1','波炮');INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('582','火藥爆炸','1.14','1','','1','火藥爆炸')INSERT INTO tb_accident_type (ID,NAME,PATH,PARENTPATH,URL,TYPE,DESCR) VALUES('583','瓦斯爆炸','1.15','1','','1','瓦斯爆炸');

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青青综合网 | 日韩欧美在线中文字幕 | 在线免费黄色 | 国产免费av在线 | 国产传媒日韩欧美 | 精品国产乱码久久久久久闺蜜 | 亚洲国产精品一区二区三区 | 久久在线 | 国产99久久精品一区二区永久免费 | 亚洲精品四区 | 国产91精品一区二区麻豆网站 | 国产中文字幕在线 | 毛片入口 | 日韩成年视频 | 中文字幕在线视频免费播放 | 亚洲精品国产第一综合99久久 | 国产成人精品一区二区三区视频 | 一本a道v久大 | 国产三级在线播放 | 亚洲国产精品久久久久久 | 久久久青草婷婷精品综合日韩 | 国产一级做a爰片在线看免费 | 亚洲欧美视频 | 午夜视频观看 | 欧美在线观看禁18 | 国产精品免费av | 亚洲成人影院在线观看 | 国产精品4hu.www | 综合色婷婷一区二区亚洲欧美国产 | 国产精品久久久久影院 | 国产中文字幕一区二区三区 | 精品久久久久久亚洲综合网站 | 日本亚洲国产一区二区三区 | 午夜影视av| 人人玩人人干 | www.9色| 精品国产一区二区三区日日嗨 | 午夜精品久久久久久99热软件 | 久久亚洲一区 | 羞羞视频在线观看视频 | 亚洲天堂精品在线观看 |