plsqlinsert
A. plsql怎么往表里插入多条数据
1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');
如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','测试');
end loop;
end ;。
2、采用insert into selct from 语句来一次性插入一个集合,这种主要依据于要插入的数据源已经存储于数据库对象中,或者利用al虚表来构造数据,经过加工后写入一个集合。
insert into test (xh,mx) select '123','测试' from al;
3、采用plsql等工具、或者oracle的imp、impdp命令来导入,这种主要用数据库与数据库之间的大批量数据导入,导入的数据格式为plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径。
impdp 用户名/密码 mpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷贝。这种主要用于要写入的数据已是excel文件或者行列分明的其它格式文件,每一列的值和表结构相对应,可直接打开表的行级锁,把数据拷贝进入。
打开行级锁方法:
select t.*,rowid from 表名 t where 1=2;
select * from 表名 where 1=2 for update;
直接把excel数据拷贝到表里
B. PLSQL简单的插入语句
insert into report (name,subject,score)values('Aa','Music',90);
insert into report (name,subject,score)values('Bb','Music',90);
insert into report (name,subject,score)values('Cc','Music',90);
C. 在PLSQL中对表插入一条数据(其中有日期类型)
insert into 表名(列名,日期列) values(值,to_date('1988-11-11','yyyy-mm-dd'));
D. plsql插入不成功
insert XXX in to XXX valus(....);
加上下面这句话
commit;
ORACLE是事务性的,你必须提交事务。
E. plsql developer连接oracle,执行大量insert into语句(大约插入30万条记录)时死掉,该怎么办
死掉了就回滚一下吧,省的再插的时候插入重复了。
然后每5000提交一次或者每几千提交一次。要是再死了,看到停在哪?从下继续执行就好
F. 写PLSQL语句(或存储过程)循环insert实现数据的复制
先试试这个,好久不写了,一会儿找个环境帮你试试,补0的问题一会儿再解决
create table B as select * from A where 1=0;
declare
cursor ind is select * from A ;
begin
for cur in ind
loop
for num 1..2
loop
insert into B values ( cur.id||num, cur.name||num, note );
end loop;
end loop;
end ;
G. plsql导出insert语句的sql文件,如何让每N行加一个commit
pl/sql: Tools-Export Tables-选择表-SQL Inserts 下面 commit every 后面输入数字,就可以,我电脑上没有 pl/sql,截不了图。
H. plsql insert into语句报错原因是
下面的select语句中多了一列
select s_xs_td.nextval,
tdid,
这两列你需要去掉一个。
I. 一条PLSQL插入怎么写
declare
cntnumber:=0;
begin
forindin(selectaidfromA)
loop
selectcount(1)
intcnt
fromB
whereaid=ind.aid;
if(cnt=0)
then
executeimmediate'insertintoBvalues('||ind.aid||')';
endif;
commit;
endloop;
end;
/
J. PLSQL 如何将多个insert语句一起运行
可以用plsql块也可以封装成存储过程,都可以啦,简单写一下啊
plsql块:
begin
insertintoloc(列1,列2,列3)values('A','B','C');
insertintoloc(列1,列2,列3)values('A','C','B');
insertintoloc(列1,列2,列3)values('','','',);
insertintoloc(列1,列2,列3)values('','','',);
end;
执行完成
存储过程:
createorreplaceprocerepro()
as
begin
insertintoloc(列1,列2,列3)values('A','B','C');
insertintoloc(列1,列2,列3)values('A','C','B');
insertintoloc(列1,列2,列3)values('','','',);
insertintoloc(列1,列2,列3)values('','','',);
endpro;
execpro()
执行完成