insert into B(col1,col2,...) select A.col1,A.col2,... from A where A.col=....
实测数据:CREATE TABLE T63 ( ID NUMBER(4), NAME VARCHAR2(20) );INSERT INTO T63 VALUES(1, '123'); INSERT INTO T63 VALUES(2, 'xt'); INSERT INTO T63 VALUES(3, '张');CREATE TABLE T64 ( ID NUMBER(4), NAME VARCHAR2(20) ); 实测结果:-- 将T63表中NAME字段值为中文的记录插入到T64表中。 INSERT INTO T64 SELECT * FROM T63 WHERE LENGTH(NAME) != LENGTHB(NAME);
insert into B(COL1,COL,.....) SELECT A.NU1,A.NU2,.... from A where A.NU1 = '1' OR a.NU2 = '1' 为什么不行呢??
insert into B(col1,col2,...) select A.col1,A.col2,... from A where A.col=....
insert into B(col1,col2,...) select A.col1,A.col2,... from A where A.col=....
一条语句就解决的事情一般不建议分开去做. insert into tabb select name,etime from taba a where a.name='ccc';
PROCEDURE A(I_SQLWHERE IN VARCHAR2 ) IS BEGIN INSERT INTO TABLE_A SELECT COL1 ,COL2 ,COL3 ,...... WHERE COL1= I_SQLWHERE;END;大概就是这么写了
(
ID NUMBER(4),
NAME VARCHAR2(20)
);INSERT INTO T63 VALUES(1, '123');
INSERT INTO T63 VALUES(2, 'xt');
INSERT INTO T63 VALUES(3, '张');CREATE TABLE T64
(
ID NUMBER(4),
NAME VARCHAR2(20)
);
实测结果:-- 将T63表中NAME字段值为中文的记录插入到T64表中。
INSERT INTO T64
SELECT * FROM T63 WHERE LENGTH(NAME) != LENGTHB(NAME);
insert into tabb select name,etime from taba a where a.name='ccc';
IS
BEGIN
INSERT INTO TABLE_A
SELECT COL1
,COL2
,COL3
,......
WHERE COL1= I_SQLWHERE;END;大概就是这么写了