第一步:創(chuàng)建腳本文件。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的分宜網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
在Oracle數(shù)據(jù)庫重,創(chuàng)建腳本文件的方式很多。如可以直接在記事本中創(chuàng)建腳本文件,也可以通過SQL*Plus工具直接創(chuàng)建。不過,筆者的意見是,在SQL*Plus中直接創(chuàng)建腳本文件的話,比較麻煩。這主要是因為在SQL*Plus工具中,命令編輯能力非常有效。如不能夠使用鍵盤上的箭頭鍵定位輸入的位置,不能夠使用DEL鍵刪除輸入的內(nèi)容等等。而且閱讀起來也比較困難。
第二步:編輯腳本文件。
在我們使用腳本文件的時候,往往需要根據(jù)實際情況,對其進行稍微的調(diào)整。對腳本文件進行編輯,也有兩種方式。一是通過SQL*Plus工具,二是第三方獨立的腳本編輯軟件。
對于一些調(diào)整不大的腳本文件,我們可以直接利用SQL*Plus工具打開,然后進行編輯。但是,對于需要進行大量修改的腳本文件,則筆者建議數(shù)據(jù)庫管理員采用第三方獨立的腳本編輯軟件。原因很簡單,就如同上面所說的那樣,SQL*Plus工具腳本命令編輯功能非常的薄弱。若采用這個工具對現(xiàn)成的腳本語句進行編輯的話,則可能工作量還是重新編寫一個來的輕。所以,數(shù)據(jù)庫管理員要根據(jù)實際的情況,選擇合適的腳本編輯工具。
另外,在編輯的過程中,要注意語法的正確性。特別是要注意,不能夠改變其固有的格式。如不要不小心刪除了最后的“/”符號結(jié)束。
第三步:運行腳本文件。
腳本建立好之后,如何運行腳本呢?在Oracle系統(tǒng)中也提供了許多方式。數(shù)據(jù)庫管理員可以根據(jù)自己的使用習(xí)慣來進行選擇。
一是通過Start語句來調(diào)用腳本文件。其語法是Start Filemame[相關(guān)參數(shù)]。在運行這個命令的時候,需要注意幾個問題。
1、腳本文件的擴展名問題。上面在建立腳本文件的時候,筆者就跳掉過,為了在SQL*Plus等工具中可以直接調(diào)用這個腳本文件,最好能夠把擴展名改為Oracle數(shù)據(jù)庫能夠接受的擴展名。默認情況下,擴展名設(shè)置為SQL即可。
2、腳本文件的路徑問題。若用戶在利用Start調(diào)用腳本文件的時候,若沒有清楚的指名保存路徑的話,則SQL*Plus工具會現(xiàn)在當前的目錄中進行查找;若沒有的話,則會根據(jù)環(huán)境變量中確定的目錄中進行查找。而一般情況下,我們把腳本文件都會獨立存放。所以,在使用Start命令執(zhí)行腳本文件的時候,最好能夠注明腳本文件的絕對路徑名。防止語句執(zhí)行錯誤。
另外@命令也可以起到跟Start命令一樣的作用。只不過,前者的使用范圍更廣一點。@命令可以脫離SQL*PLUS工具而使用。如可以直接在微軟操作系統(tǒng)中的命令行方式下使用。當然,這操作系統(tǒng)要事先部署了Oracle數(shù)據(jù)庫環(huán)境。
二是可以直接利用SQL*Plus工具打開文本文件,執(zhí)行腳本語句。然后點擊“文件”、“執(zhí)行”命令執(zhí)行這個腳本語句。這種方式的好處就是,系統(tǒng)會主動提示用戶需要輸入的參數(shù)。
總之,腳本文件是我們管理Oracle數(shù)據(jù)庫的一大利器。我們好好利用腳本文件,可以提高Oracle數(shù)據(jù)庫的管理效率。畢竟,每次在需要的時候,都去編寫命令是一件很麻煩的事情。而腳本文件的最大好處,就是可以提高語句的重復(fù)利用,節(jié)省我們編寫語句、調(diào)試測試的時間。
正常情況下,Oracle EBS里修改用戶密碼,可以在System administrator Define user form里更改,但有的時候,開發(fā)或者實施需要更快速的更改密碼,可以使用下邊的這個腳本
DECLARE
l_success boolean;
BEGIN
l_success := FND_USER_PKG.ChangePassword('OPERATIONS','welcome123');
IF l_success
THEN
DBMS_OUTPUT.PUT_LINE('Password Changed');
ELSE
DBMS_OUTPUT.PUT_LINE('Something wrong');
END IF;
END;
批量插入數(shù)據(jù)腳本
1、第一種批量插入數(shù)據(jù)腳本,可以基本滿足要求。理解上較為簡單,所以這個最常用。
NEXTVAL和CURRVAL的區(qū)別:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出現(xiàn)在一個 SQL 語句中,則序列只增加一次。在這種情況下,每個 sequence.CURRVAL 和 sequence.NEXTVAL 表達式都返回相同的值,不管在語句中sequence.CURRVAL 和 sequence.NEXTVAL 的順序。
執(zhí)行腳本結(jié)果如下:
3、兩個表,同時批量插入數(shù)據(jù)的腳本
3、
4、 涉及子表時,批量插入數(shù)據(jù)腳本,
5、 批量修改數(shù)據(jù) :
時間取數(shù)方式:
一、SYSTIMESTAMP(取當前系統(tǒng)值)
二、SYSDATE(取當前系統(tǒng)值,但只精確到時,分和秒都為0)
三、固定值為:TO_TIMESTAMP ('2019-2-12 15:24:45.703000', 'yyyy-mm-dd hh24:mi:ss.ff6')
把固定的字段改為變量:
方式一:’||i||’ 例:’{“no”:“111’||i||’”}’(此方式)
方式二:concat 例:concat(concat(’{“blNo”:111"’,i),’"}’)
沒必要用root權(quán)限執(zhí)行,oracle用戶同樣可以執(zhí)行crontab計劃任務(wù)
1、su - oracle
crontab -e
0 4 * * 0 /home/oracle/exp.sh 21 /home/oracle/script_exp.log;
0~59 表示分
0~23 表示小時
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
2、cat /home/oracle/exp.sh
. ~/.bash_profile
bakdir=/opt/dbbak
logdir=/home/oracle/dbbak
rq=$(date +%Y%m%d)
exp system/***** owner=jysh file=${bakdir}/jysh_${rq}.dmp log=${logdir}/jysh_${rq}.log;
find ${bakdir} -type f -mtime +30 -exec rm -rf {} \;
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然后看看影響,畢竟在生產(chǎn)環(huán)境作這樣的操作風險很大。如果是誤操作,最好還是請DBA來恢復(fù),雖然這樣做會被挨罵,但總比錯上加錯,最后連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構(gòu)建臨時表進行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調(diào)的是id必須是主鍵
1、構(gòu)建臨時表進行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調(diào)的是id必須是主鍵
網(wǎng)站標題:oracle腳本怎么修改,oracle修改job腳本
路徑分享:http://www.rwnh.cn/article6/dsdhjog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、App設(shè)計、微信公眾號、企業(yè)建站、搜索引擎優(yōu)化、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)