存儲過程添加數據
在存儲過程中插入數據肯定用到sql語句,寫好insert語句就好了。
createorreplaceprocerep_insert_mt_jx(P_a1invarchar2,P_a2invarchar2,P_a3invarchar2,P_a4invarchar2)
as
sql_strvarchar2(100);
begin
sql_str:='insertintomt_jx(a1,a2,a3,a4)values('||P_a1||','||P_a2||','||P_a3||','||P_a4||',)';
executeimmediatesql_str;
/*
或者你可以不用executeimmediate,可以直接寫下面的sql
insertintomt_jx(a1,a2,a3,a4)values(P_a1,P_a2,P_a3,P_a4);
*/
commit;
end;
2. oracle資料庫如何利用存儲過程向表中添加數據
實際上存儲過程向表中插入數據和sql執行的區別是不大的,只不過是存儲過程是用loop等循環插入,之後順序執行sql語句,不用命令行執行。
_data_4_pressure_3
is
--Result1VARCHAR2(50);
VAR_numnumber;
begin
VAR_num:=1;
while
VAR_num<1000000
LOOP
insertintorp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
selectto_date('2013/10/29','yyyy-mm-dd'),
round(dbms_random.value(1,300))||'省',
round(dbms_random.value(1,800))||'類型',
round(dbms_random.value(1,100))||'風險分值',
round(dbms_random.value(1,300))||'規則名稱',
'1'
fromal;
commit;
VAR_num:=VAR_num+1;
endloop;
endinsert_data_4_pressure_3;
3. 如何在存儲過程中實現插入更新數據
--先在資料庫中創建test表,表中有列名為name,類型為varchar(50)
然後先執行
create procere proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入數據
end
go
create procere proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新數據
end
go
--其中proc_insert為存儲過程名,可自定義 procere可使用簡寫proc
上面執行完成後調用存儲過程
exec proc_insert '曉華'--將"曉華"添加到test表中
exec proc_update '小明','曉華' --將表中'曉華' 改為'小明',必須與存儲過程變數順序相同
exec proc_update @oldname='小明',@newname='曉華'--與存儲過程變數順序可以不同
drop procere proc_insert 刪除存儲過程proc_insert
4. 如何利用存儲過程向表中添加數據
create procere prc_sale
@編號 int
,@名稱 varchar(20)
,@價錢 float
,@賣出數量 float
as
begin
insert into sales (編號,名稱,價錢,賣出數量)
values (@編號,@名稱,@價錢,@賣出數量);
end;
5. mysql存儲過程怎樣批量插入數據
一下代碼運行通過:
delimiter$$;
createprocerelucia_proc16(countint)
begin
DECLAREname_procVARCHAR(20)CHARACTERSETutf8;
DECLAREsex_procVARCHAR(4)CHARACTERSETutf8;
DECLAREage_procINT(10);
DECLAREclass_procVARCHAR(20)CHARACTERSETutf8;
DECLAREAddr_procVARCHAR(50)CHARACTERSETutf8;
DECLAREiINT;
seti=1;
setsex_proc='女';
setage_proc=20;
setclass_proc='山治班';
setAddr_proc='北京市朝陽區';
whilei<countdo
setname_proc=CONCAT('露西亞',i);
insertintostudents(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
seti=i+1;
endwhile;
end
$$;
delimiter;
代碼功能:
傳入一個行數,控制插入多少條數據
運行效果:
6. oracle存儲過程怎樣批量插入新數據
需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);
存儲過程實現
create or replace procere proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;
begin
proc_casekey_upstate();
end;
測試發現生成一千萬條數據用了14分鍾左右,性能還是可以了,如果先去掉TMP_NUM_STATUS_ID的外鍵估計更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from al connect by level <= 1000000;
7. SQL2005 使用存儲過程,往表裡插入數據怎麼寫
create procere insert_activeinfo
as
begin
insert into insert_activeinfo(activeid,activename,activedate,usertypeid) values(..)
end
go
--這樣就可以啊,當然你還可以把要插入的值通過參數傳進來,譬如:
create procere insert_activeinfo(@activeid int,@activename varchar(10),@activedate datetime,@usertypeid int)
as
begin
insert into activeinfo(activeid,activename,activedate,usertypeid) values(@activeid,@activename,@activedate,@usertypeid)
end
go
8. 編寫一個存儲過程實現對表數據的刪除 修改和添加!(sql server資料庫)
1、使用賬戶和密碼,連接到自己的資料庫。
9. 有外鍵的資料庫怎麼通過存儲過程添加數據
以下為 Oracle 表與過程:
部門表:
create table tbl_dept
(
dept_code varchar2(20) not null, --主鍵
dept_name varchar2(20)
)
;
員工表:
create table tbl_emp
(
emp_code varchar2(20) not null, --主鍵
emp_name varchar2(20),
dept_code varchar2(20) --外鍵
)
;
存儲過程:
create or replace package body pkg_test is
procere pro_emp_insert(
p_emp_code in varchar2 ,
p_emp_name in varchar2,
p_dept_code in varchar2,
errbuf out varchar2,
retcode out number
)
is
begin
--數據驗證,驗證:不為空、特殊字元等等
--略
--插入
insert into tbl_emp values (p_emp_code, p_emp_name, p_dept_code);
retcode := 1;
errbuf := '插入員工成功!';
exception
when others then
retcode := -1;
errbuf := '插入員工錯誤:' || sqlerrm;
end pro_emp_insert;
end pkg_test;
10. Oracle中的存儲過程如何添加更新數據
添加更新數據跟一般的sql一樣的寫法啊,唯一差別是變數、傳參的寫法,比如
select
count(1)
into
v_count
from
table
a
where
a.clct_day
=
p_clct_day;
這里v_count就是定義的一個變數,p_clct_day就是過程傳入的時間參數