1、首先打開電腦,點(diǎn)擊進(jìn)入瀏覽器。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的蓬萊網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
2、其次點(diǎn)擊搜索oracle,選擇第一個(gè)進(jìn)入,點(diǎn)擊選擇數(shù)據(jù)化,選擇復(fù)制的包,點(diǎn)擊使用。
3、最后點(diǎn)擊確認(rèn)即可。
oracle數(shù)據(jù)更新時(shí)觸發(fā)java代碼的步驟如下:
1。編寫JAVA程序
public?class?Main?{??
public?static?void?modify(String?statTime)??
{??
String?datas?=?"/var/spool/cron/oracle";??
File?data?=?new?File(datas);??
StringBuffer?backup?=?null;??
try?{??
StringBuffer?content?=?new?StringBuffer();??
backup?=?new?StringBuffer();??
BufferedReader?san?=?new?BufferedReader(new?FileReader(data));??
String?line?=?null;??
while((line=san.readLine())!=null)??
{??
backup.append(line);??
backup.append("/n");??
}??
content.append("15?");??
content.append(statTime.trim());??
content.append("?*?*?*?/home/oracle/task.sh");??
content.append("/n");??
content.append("13?");??
content.append(statTime.trim());??
content.append("*?*?*?/home/oracle/tj_task/task2.sh");??
content.append("/n");??
FileWriter?writer?=?new?FileWriter(data,false);??
writer.write(content.toString());??
writer.flush();??
}?catch?(FileNotFoundException?e)?{??
e.printStackTrace();??
}?catch?(IOException?e)?{??
try??
{??
FileWriter?writer?=?new?FileWriter(data,false);??
writer.write(backup.toString());??
writer.flush();??
}catch(Exception?ex)??
{??
ex.printStackTrace();??
}??
}??
}??
}
注意,這里寫JAVA程序不需要遵循標(biāo)準(zhǔn)的JAVA程序,一定要有main入口函數(shù),相反,這里的函數(shù)一般不要取名為main,除非格式是標(biāo)準(zhǔn)的main 函數(shù)格式
2。把JAVA程序LOAD進(jìn)oracle
在$ORACLE_HOME/bin目錄下有個(gè)LOADJAVA命令,使用這個(gè)命令將剛寫好的JAVA程序LOAD進(jìn)數(shù)據(jù)庫(kù)。
loadjava -user?test/test@test?-o -v -f -r Main.java
如果成功的話,會(huì)打印出來(lái)信息提示成功,若程序有編譯錯(cuò)誤的話,也會(huì)提示錯(cuò)誤的地方。
3。修改權(quán)限
首先以管理員身份登錄進(jìn)數(shù)據(jù)庫(kù)
sqlplus / as sysdba
然后執(zhí)行
begin
dbms_java.grant_permission('TEST','SYS:java.io.FilePermission','/var/spool/cron/oracle','read,write,execute,delete');
end;
/
執(zhí)行完畢后,在數(shù)據(jù)庫(kù)里執(zhí)行上述JAVA程序時(shí),就擁有讀寫該文件的權(quán)限了。
4。創(chuàng)建存儲(chǔ)過(guò)程
進(jìn)入到數(shù)據(jù)庫(kù),在SQLPLUS命令行
create or replace procedure Modify(name varchar2) as language java name 'Main.modify(java.lang.String)';
/
會(huì)提示創(chuàng)建存儲(chǔ)過(guò)程成功。
5。增加trigger
TOAD里直接針對(duì)某個(gè)表增加trigger,所以關(guān)鍵部分的代碼
begin
if :old.name = 'time' then
Modify(:new.value);
end if;
end;
包用于在邏輯上組合過(guò)程和函數(shù),它由包規(guī)范和包體兩部分組成
1.創(chuàng)建包
--創(chuàng)建一個(gè)包sp_package
create?package?sp_package?is
--聲明該包有一個(gè)過(guò)程和函數(shù),(沒(méi)有實(shí)現(xiàn))
procedure?update_sal(name?varchar2,newsal?number);
function?annual_nicome(name?varchar2)?return?number;
end;
--創(chuàng)建包體(用于實(shí)現(xiàn)已經(jīng)聲明的函數(shù)和過(guò)程)
create?package?body?sp_package?is
procedure?update_sal(name?varchar2,newsal?number)
is
BEGIN
UPDATE?emp
SET????sal?=?newsal
WHERE??ename?=?name;
END;
function?annual_income(name?varchar2)
return?number?is
annual_salary?number;
BEGIN
SELECT?sal?*?12?+?Nvl(comm,0)
INTO???annual_salary
FROM???emp
WHERE??ename?=?name;
RETURN?annual_salary;
END;
end;
--調(diào)用包中的內(nèi)容
exec?sp_package.update_sal('name',number);
觸發(fā)器怎么寫在包里了?
包里的函數(shù)調(diào)存儲(chǔ)過(guò)程很簡(jiǎn)單的,直接用就可以了,傳入對(duì)應(yīng)的參數(shù),不需要加包名前綴
如果你使用界面的話,就直接雙擊圖標(biāo),如果使用腳本的話,就從開始程序里打開Oracle plus
,這兩者都要保證你的服務(wù)是否啟動(dòng),一般啟動(dòng)最后兩個(gè)就可以
1.cmd進(jìn)入命令行 lsnrctl start 啟動(dòng)監(jiān)聽服務(wù),看出現(xiàn)什么錯(cuò)誤
如果沒(méi)有錯(cuò)誤,察看數(shù)據(jù)庫(kù)是否可以正常進(jìn)行連接
2.看下你電腦是不是裝了防火墻 先把防火墻禁止掉去
3.去orant\net80\trace\看看,一般有錯(cuò)都會(huì)在那里產(chǎn)生一個(gè).log文件
在存儲(chǔ)過(guò)程或函數(shù)里調(diào)用oracle包的話,首先要有執(zhí)行這個(gè)包的權(quán)限;如果包屬于其他的用戶(不是系統(tǒng)包),調(diào)用時(shí):用戶名.包名.存儲(chǔ)過(guò)程(參數(shù))名或者
變量:=用戶名.包名.函數(shù)(參數(shù));因?yàn)楹瘮?shù)有返回值,變量類型要跟函數(shù)返回值的類型一致。
在command
下調(diào)用的話:exec
用戶名.包名.存儲(chǔ)過(guò)程名(參數(shù));select
用戶名.包名.函數(shù)名(參數(shù))
from
dual;就可以了。包屬于當(dāng)期用戶可以不寫用戶名。
網(wǎng)站欄目:Oracle的包如何觸發(fā),oracle如何執(zhí)行包
本文鏈接:http://chinadenli.net/article47/dseshhj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)