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()
執行完成