oracleinsert忽略转义
嵌入方式如下。INSERT INTO target_table (col1, col2, col3)
SELECT col1,
col2,
col3
FROM source_table
WHERE condition;
其中的select可以使用单表,也可以使用多表,分别举例说明如下。
1. select中使用单表查询
下面了演示如何使用insert into select语句,首先创建一个名为sales的表。
CREATE TABLE sales (
customer_id NUMBER,
product_id NUMBER,
order_date DATE NOT NULL,
total NUMBER(9,2) DEFAULT 0 NOT NULL,
PRIMARY KEY(customer_id,
product_id,
order_date)
);
以下语句将orders和order_items表中的销售摘要插入到sales表中,参考以下实现语句 -
INSERT INTO sales(customer_id, product_id, order_date, total)
SELECT customer_id,
product_id,
order_date,
SUM(quantity * unit_price) amount
FROM orders
INNER JOIN order_items USING(order_id)
WHERE status = 'Shipped'
GROUP BY customer_id,
product_id,
order_date;
2. select中使用多表查询
假设只想将2017年的销售摘要数据复制到新表中。 为此,创建一个名为sales_2017的新表,使用Oracle INSERT INTO SELECT和WHERE子句将2017年的销售数据复制到sales_2017表中:
INSERT INTO sales_2017
SELECT customer_id,
product_id,
order_date,
SUM(quantity * unit_price) amount
FROM orders
INNER JOIN order_items USING(order_id)
WHERE status = 'Shipped' AND EXTRACT(year from order_date) = 2017
GROUP BY customer_id,
product_id,
order_date;
绛旓細2. select涓娇鐢ㄥ琛ㄦ煡璇 鍋囪鍙兂灏2017骞寸殑閿鍞憳瑕佹暟鎹鍒跺埌鏂拌〃涓 涓烘锛屽垱寤轰竴涓悕涓簊ales_2017鐨勬柊琛紝浣跨敤Oracle INSERT INTO SELECT鍜學HERE瀛愬彞灏2017骞寸殑閿鍞暟鎹鍒跺埌sales_2017琛ㄤ腑锛欼NSERT INTO sales_2017 SELECT customer_id,product_id,order_date,SUM(quantity * unit_price) amoun...
绛旓細鏁版嵁寮傚父銆oracleinsert803閿欒鏄洜涓烘暟鎹紓甯稿鑷寸殑锛岄渶瑕侀噸鏂板惎鍔ㄣ傛暟鎹紙data锛夋槸浜嬪疄鎴栬瀵熺殑缁撴灉锛屾槸瀵瑰瑙備簨鐗╃殑閫昏緫褰掔撼锛屾槸鐢ㄤ簬琛ㄧず瀹㈣浜嬬墿鐨勬湭缁忓姞宸ョ殑鍘熷绱犳潗銆
绛旓細oracleinsert璇彞璁剧疆瓒呮椂瑙e喅鏂规硶锛1.鍙互鍦ㄥ簲鐢ㄧ▼搴忔垨瀹㈡埛绔唬鐮佷腑璁剧疆INSERT璇彞鐨勮秴鏃舵椂闂淬2.鍙互鍦ㄦ暟鎹簱浼氳瘽绾у埆璁剧疆INSERT璇彞鐨勮秴鏃舵椂闂达紝鍙互浣跨敤ALTERSESSION璇彞鏉ヨ缃甋QL鎵ц鐨勮秴鏃舵椂闂淬3.鍙互鍦ㄦ暟鎹簱灞傞潰璁剧疆INSERT璇彞鐨勮秴鏃舵椂闂达紝涔熷彲浠ヤ娇鐢⊿QLNET.INBOUND_CONNECT_TIMEOUT鍙傛暟鏉ヨ缃鎴风杩炴帴鐨...
绛旓細setLong void setLong(int parameterIndex,long x)throws SQLException灏嗘寚瀹氬弬鏁拌缃负缁欏畾 Java long 鍊笺傚湪灏嗚瀵硅薄鍙戦佸埌鏁版嵁搴撴椂锛岄┍鍔ㄧ▼搴忓皢瀹冭浆鎹㈡垚涓涓 SQL BIGINT 鍊笺傚弬鏁帮細parameterIndex - 绗竴涓弬鏁版槸 1锛岀浜屼釜鍙傛暟鏄 2锛屼緷姝ょ被鎺ㄣ倄 - 鍙傛暟鍊 鎶涘嚭锛歋QLException - 濡傛灉鍙戠敓鏁版嵁搴...
绛旓細杩欎富瑕佹槸鍥犱负Oracle妫鏌ュ彂鐜版暟鎹簱璁剧疆鐨勫瓧绗﹂泦涓庡鎴风閰嶇疆瀛楃闆嗕笉鍚,瀹冨皢瀵规暟鎹繘琛屽瓧绗﹂泦鐨勮浆鎹傛暟鎹簱涓疄闄呭瓨鏀剧殑鏁版嵁涓182(10110110)銆171(10101011)銆177(10110001)銆177(10110001),鐢变簬鏁版嵁搴撳瓧绗﹂泦璁剧疆涓篣S7ASCII,瀹冩槸涓涓7bit鐨勫瓧绗﹂泦,瀛樺偍鍦8bit鐨勫瓧鑺備腑,鍒Oracle蹇界暐鍚勫瓧鑺傜殑鏈楂榖it,鍒182(10110110...
绛旓細浣犱粈涔堟暟鎹簱鍟婏紵鎶婁綘寤鸿〃璇彞鍙戞潵鐪嬬湅 sqlserver insert into 琛ㄥ悕 (瀛楁鍚) values (newid())oracle insert into 琛ㄥ悕(瀛楁鍚) values (sys_guid())mysql insert into 琛ㄥ悕(瀛楁鍚) values(UUID())浣犳寜浣犳槸浠涔堟暟鎹簱鎸戠潃鐢ㄥ惂
绛旓細oracleinsert鏁版嵁涓嶄細鎼炴帀鏈嶅姟鍣ㄣ俹racleinsert鏁版嵁涓嶄細鎼炴帀鏈嶅姟鍣紝鍙細娑堣楅潪甯稿鐨勮祫婧愶紝鍥爑pdate琛ㄧ殑鏃跺欙紝oracle闇瑕佺敓鎴恟edolog鍜寀ndolog銆傚湪oracle涓紝insert璇彞鐢ㄤ簬鍚戞暟鎹〃涓彃鍏ヤ竴琛屾垨澶氳鏁版嵁銆
绛旓細闈炵敓浜х幆澧冦傚湪oracleinsert閲岋紝寮涓嶅嚭骞跺彂鏄洜涓洪夋嫨浜嗛潪鐢熶骇鐜銆傝灏嗚〃鐨勭储寮曞拰绾︽潫鍘绘帀锛屽緟insert瀹屾垚鍚庡啀寤虹储寮曞拰绾︽潫銆
绛旓細oracleinsert蹇熷搴攕elect濡備笅锛1銆乮nsert璇彞涓紝涓嶄粎瑕乮nsert椤甸潰浼犺繃鏉ョ殑鍊硷紝杩樿insertselect鐨勫笺2銆乷racleinsertselect鍜宻elect鎵ц璁″垝涓嶅悓瑙e喅銆