1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > oracle into多个变量 Oracle中merge into的使用:该命令使用一条语句从一个或者多个

oracle into多个变量 Oracle中merge into的使用:该命令使用一条语句从一个或者多个

时间:2019-06-17 03:35:08

相关推荐

oracle into多个变量 Oracle中merge into的使用:该命令使用一条语句从一个或者多个

该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据.ORACLE9i中,使用此命令必须同时指定UPDATE和INSERT关键词,ORACLE10g做了如下改动。

1,insert和update是可选的

2,UPDATE和INSERT后面可以跟WHERE子句

3,在ON条件中可以使用常量来insert所有的行到目标表中,不需要连接到源表和目标表

4,UPDATE子句后面可以跟delete来去除一些不需要的行。

举例:

createtablePRODUCTS

(

PRODUCT_IDINTEGER,

PRODUCT_NAMEVARCHAR2(60),

CATEGORYVARCHAR2(60)

);

insertintoPRODUCTSvalues(1501,'VIVITAR35MM','ELECTRNCS');

insertintoPRODUCTSvalues(1502,'OLYMPUSIS50','ELECTRNCS');

insertintoPRODUCTSvalues(1600,'PLAYGYM','TOYS');

insertintoPRODUCTSvalues(1601,'LAMAZE','TOYS');

insertintoPRODUCTSvalues(1666,'HARRYPOTTER','DVD');

commit;

createtablePRODUCTS_new

(

PRODUCT_IDINTEGER,

PRODUCT_NAMEVARCHAR2(60),

CATEGORYVARCHAR2(60)

);

insertintoPRODUCTS_newvalues(1666,'HARRYPOTTER','DVD');

commit;

select*fromPRODUCTS;

select*fromPRODUCTS_new;

--将PRODUCTS表中的数据导入PRODUCTS_new

MERGEINTOPRODUCTS_newp

USINGPRODUCTSnp

--当p.PRODUCT_ID=np.PRODUCT_ID时

ON(p.PRODUCT_ID=np.PRODUCT_ID)

--如果匹配则执行下面sql(update)

WHENMATCHEDTHEN

UPDATESETp.product_name=np.product_name

--如果不匹配则执行下面sql(insert)

WHENNOTMATCHEDTHEN

insertvalues(np.PRODUCT_ID,np.PRODUCT_NAME,np.CATEGORY);

1.insert和update都带有where字句:

--将PRODUCTS表中的数据导入PRODUCTS_new

MERGEINTOPRODUCTS_newp

USINGPRODUCTSnp

--当p.PRODUCT_ID=np.PRODUCT_ID时

ON(p.PRODUCT_ID=np.PRODUCT_ID)

--如果匹配则执行下面sql(update)

WHENMATCHEDTHEN

UPDATESETp.product_name=np.product_nameWHEREp.category='DVD'

--如果不匹配则执行下面sql(insert)

WHENNOTMATCHEDTHEN

insertvalues(np.PRODUCT_ID,np.PRODUCT_NAME,np.CATEGORY)WHEREnp.category!='BOOKS';

2.无条件的insert:

--将PRODUCTS表中的数据导入PRODUCTS_new

MERGEINTOPRODUCTS_newp

USINGPRODUCTSnp

--无条件insert

ON(1=0)

--如果匹配则执行下面sql(update)

WHENMATCHEDTHEN

UPDATESETp.product_name=np.product_name

--如果不匹配则执行下面sql(insert)

WHENNOTMATCHEDTHEN

insertvalues(np.PRODUCT_ID,np.PRODUCT_NAME,np.CATEGORY);

oracle into多个变量 Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据....

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。