//通過(guò)編寫(xiě)的連接類(lèi)創(chuàng)建一個(gè)連接
江門(mén)網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
dbconn db = new dbconn();
Connection con1 = db.conn;
String callSQL1 = new String();
ResultSet rs1 = null;
//創(chuàng)建一個(gè)CallableStatement變量st1來(lái)調(diào)用存儲(chǔ)過(guò)程信息
CallableStatement st1 = null;
try {
st1 = con1.prepareCall("{ call p(?,?,?,?) }");
st1.setString(1, "參數(shù)1");
st1.setString(2, "參數(shù)2");
st1.setString(3, "參數(shù)3");
st1.registerOutParameter(4,Types.INTEGER); //此處4 代表第一個(gè)"?" 則表示存儲(chǔ)過(guò)程返回的值 這里要注意Types的類(lèi)型,當(dāng)需要有返回值時(shí)
st1.execute();
System.out.println(st1.getInt(4));//輸出存儲(chǔ)過(guò)程的返回值,當(dāng)有返回值時(shí)
} catch (Exception error) {
try {
con1.rollback(); //操作不成功則回退
} catch (Exception ex9) {
ex9.printStackTrace();
}
out.print("系統(tǒng)出錯(cuò)" + error.getMessage());
} finally {
try {
if (st1 != null) {
st1.close();
}
} catch (Exception error) {
}
db.disconnect();
}
Oracle使用merge into 編寫(xiě)存儲(chǔ)過(guò)程 遇編譯錯(cuò)誤,是設(shè)置錯(cuò)誤造成的,解決方法如下:
1、首先新建存儲(chǔ)過(guò)程,Create or Replace??Procedure CHK_SYS_EMP 檢查系統(tǒng)工號(hào)。
2、定義參數(shù)及變量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。
3、存儲(chǔ)過(guò)程框架用Begin開(kāi)始,End結(jié)束。
4、查看需要調(diào)用表的結(jié)構(gòu)以及相關(guān)字段。會(huì)用到表中的 EMP_NO ENABLED。
5、存儲(chǔ)過(guò)程按需添加SQL語(yǔ)句,最后程序運(yùn)行測(cè)試沒(méi)問(wèn)題就完成了 。
Oracle中出現(xiàn)無(wú)效對(duì)象,就是因?yàn)樵趧?chuàng)建函數(shù)或存儲(chǔ)過(guò)程等,里邊的內(nèi)容書(shū)寫(xiě)不正確導(dǎo)致。如果要重新編譯,需要先修正錯(cuò)誤,然后編譯。
工具:Oracle 10g、PL/SQL
步驟:
1、在PL/SQL中打開(kāi)出現(xiàn)編譯錯(cuò)誤的函數(shù)或存儲(chǔ)過(guò)程,這里以存儲(chǔ)過(guò)程為例。
2、右鍵點(diǎn)擊該存儲(chǔ)過(guò)程,選擇“編輯”。
3、根據(jù)錯(cuò)誤提示,找到錯(cuò)誤,并修改錯(cuò)誤。
4、改正錯(cuò)誤后,點(diǎn)擊左上方的“齒輪”狀按鈕。
5、運(yùn)行成功后,則該存儲(chǔ)過(guò)程就會(huì)變?yōu)榫幾g成功的狀態(tài)。
1.批量編譯存儲(chǔ)工程的存儲(chǔ)過(guò)程
create or replace procedure compile_invalid_procedures(
p_owner varchar2 -- 所有者名稱(chēng),即 SCHEMA) as--編譯某個(gè)用戶下的無(wú)效存儲(chǔ)過(guò)程
str_sql varchar2(200);begin
for invalid_procedures in (select object_name from all_objects
where status = 'INVALID' and object_type = 'PROCEDURE' and owner=upper(p_owner))loop
str_sql := 'alter procedure ' ||invalid_procedures.object_name || ' compile';begin
execute immediate str_sql;exception
--When Others Then Null;
when OTHERS Then
dbms_output.put_line(sqlerrm);end;end loop;end;
2.批量編譯視圖的存儲(chǔ)過(guò)程
sqlplus有相關(guān)的了命令:比如alter procedure prodedure_name compile;
第一次編譯的時(shí)候只要在后面加一個(gè)/當(dāng)做執(zhí)行符號(hào),那么就可以進(jìn)行編譯。
要使用 OMPT,需要在系統(tǒng)上安裝和運(yùn)行 Oracle Solaris 11。除了安裝過(guò)程中使用的 root 權(quán)限之外,運(yùn)行任何 OMPT 實(shí)用程序通常無(wú)需任何其他特殊權(quán)限。
如果您想編譯 MPI 程序,則需要安裝 Oracle Solaris Studio 12.1 或更高版本。在運(yùn)行 MPI 程序的節(jié)點(diǎn)集群上,可以在其中一個(gè)節(jié)點(diǎn)上安裝 Oracle Solaris Studio 并僅在該節(jié)點(diǎn)上編譯 openmpi-15 程序包,但在所有節(jié)點(diǎn)上都安裝該程序包。
要獲取 OMPT,請(qǐng)安裝 openmpi-15 程序包,該程序包由一個(gè)映像包管理系統(tǒng) (IPS) 信息庫(kù)托管,您的系統(tǒng)上應(yīng)配置有該信息庫(kù)。要驗(yàn)證是否配置了 IPS 信息庫(kù),請(qǐng)運(yùn)行 pkg publisher 命令。
如果尚未 配置 IPS 信息庫(kù),請(qǐng)?jiān)趪L試添加 openmpi-15 程序包之前配置它。否則,程序包添加將失敗。
系統(tǒng)應(yīng)配置了網(wǎng)絡(luò)訪問(wèn)(如果是通過(guò)網(wǎng)絡(luò)訪問(wèn) IPS 信息庫(kù))或本地配置的從同一系統(tǒng)提供服務(wù)的 IPS 信息庫(kù)。
本文示例使用了本地配置的 IPS 信息庫(kù),如 pkg publisher 命令的以下輸出所示,該輸出指示 IPS 信息庫(kù)通過(guò) HTTP 托管在 localhost 上。
root@solarix:/usr/share/distro_const# pkg publisher
PUBLISHER TYPE STATUS URI
solaris origin online
驗(yàn)證配置了信息庫(kù)之后,以 root 身份運(yùn)行 pkg install openmpi-15 命令添加該分發(fā)構(gòu)造器程序包。然后從 IPS 信息庫(kù)下載 openmpi-15 程序包并立即安裝。
pkg install openmpi-15 命令顯示進(jìn)程的狀態(tài),如清單 1 所示,這樣便于觀察進(jìn)度。
清單 1:pkg install openmpi-15 命令的輸出
root@solarix:~# pkg install openmpi-15
Creating Plan
Packages to install: 2
Create boot environment: No
DOWNLOAD PKGS FILES XFER (MB)
service/picl 0/2 0/1430 0.0/11.9[K
developer/openmpi-15 1/2 1430/1430 11.9/11.9[K
Completed 2/2 1430/1430 11.9/11.9[K
PHASE ACTIONS
Install Phase 1639/1639
PHASE ITEMS
Package State Update Phase 1/2
Package State Update Phase 2/2
Image State Update Phase 1/2
Image State Update Phase 2/2
PHASE ITEMS
Reading Existing Index 1/8
Reading Existing Index 5/8
Reading Existing Index 8/8
Indexing Packages 2/2
安裝完 openmpi-15 程序包之后,只需在 PATH 變量中包括 /usr/openmpi/ompi-15/bin,然后就一切準(zhǔn)備妥當(dāng)。
使用 OMPT 編譯 MPI 程序
使用 OMPT 編譯 MPI 程序有兩種方式。您可以使用程序包中包含的編譯器包裝器(mpicc、mpiCC、mpif77 和 mpif90)或者直接調(diào)用編譯器。
因?yàn)樾枰?include、library 和 run 路徑,建議采用第一種方法。包裝器將其不了解的所有選項(xiàng)都傳給 Oracle Solaris Studio 編譯器,因此您應(yīng)能夠使用包裝器實(shí)用程序替換 makefile 中編譯器的所有實(shí)例。
以清單 2 作為示例 MPI 程序,可以使用一行命令編譯程序:
mpicc hello.c -o hello.x
清單 2:示例 hello.c 程序
#include stdio.h
#include mpi.h
int main(int argc, char **argv) {
int np, me;
MPI_Init(argc,argv);
MPI_Comm_size(MPI_COMM_WORLD,np);
MPI_Comm_rank(MPI_COMM_WORLD,me);
printf("hello from %d of %d\n", me, np);
MPI_Finalize();
return 0;
}
還可以執(zhí)行兩階段的編譯和鏈接:
mpicc -c hello.c
mpicc hello.o -o hello.x
如果要直接執(zhí)行編譯器而不使用包裝器,可以通過(guò)向包裝器提供 -showme 選項(xiàng)來(lái)確定包裝器使用的選項(xiàng):
mpicc -showme hello.c -o hello.x
使用 OMPT 運(yùn)行 MPI 程序
編譯完可執(zhí)行文件并與 OMPT 庫(kù)鏈接之后,可以單獨(dú)運(yùn)行該程序或使用并行作業(yè)啟動(dòng)器實(shí)用程序 mpirun 來(lái)運(yùn)行。
要單獨(dú)運(yùn)行程序,只需運(yùn)行該可執(zhí)行文件,就跟普通非并行可執(zhí)行文件一樣。但是,隨后將由該程序來(lái)負(fù)責(zé)調(diào)用相應(yīng)的 MPI API(如 MPI_Comm_spawn 或 MPI_Comm_spawn_multiple)來(lái)生成 MPI 作業(yè)的其他進(jìn)程。
要一開(kāi)始就創(chuàng)建運(yùn)行多個(gè)進(jìn)程的 MPI 作業(yè),請(qǐng)使用 mpirun 實(shí)用程序。例如,如果您要使用總共 8 個(gè)進(jìn)程在 2 個(gè)節(jié)點(diǎn)上運(yùn)行我們的示例 MPI 程序,可以使用以下命令:
mpirun -np 8 -host hostname1,hostname2 hello.x
有幾個(gè)選項(xiàng)可以與 mpirun 一起用來(lái)控制綁定、布局、輸出重定向等等。通過(guò)執(zhí)行 mpirun -h 或 man mpirun 可以獲取有關(guān)這些選項(xiàng)的更多信息。
網(wǎng)頁(yè)標(biāo)題:oracle怎么編譯過(guò)程 oracle 存儲(chǔ)過(guò)程編譯
當(dāng)前網(wǎng)址:http://jinyejixie.com/article40/hpceeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、關(guān)鍵詞優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站排名、自適應(yīng)網(wǎng)站、網(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)
猜你還喜歡下面的內(nèi)容