使用oracle調(diào)用存儲過程得方式和plsql不一樣,下面給你個調(diào)用例子
創(chuàng)新互聯(lián)公司專注于沽源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供沽源營銷型網(wǎng)站建設(shè),沽源網(wǎng)站制作、沽源網(wǎng)頁設(shè)計、沽源網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造沽源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供沽源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
過程調(diào)用方式一
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存儲過程調(diào)用開始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必須按順序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //過程調(diào)用結(jié)束
過程調(diào)用方式二
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //過程調(diào)用開始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=realname,isal=realsal,sjob=realjob); --指定值對應變量順序可變
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //過程調(diào)用結(jié)束
調(diào)用oracle存儲過程用begin...end的方式。
基本語法:
begin 存儲過程名(參數(shù)1,參數(shù)2……);--如果無參數(shù)則省略括號及括號內(nèi)部分end;
如,有存儲過程:
create or replace procedure p_testasv_begintime varchar2(20);v_endtime varchar2(20);v_str varchar2(10);begin v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); select 'badkano' into v_str from dual; v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); dbms_output.put_line('開始時間為:'||v_begintime); dbms_output.put_line('結(jié)束時間為:'||v_endtime);end;
執(zhí)行:begin p_test;end;
一。 概述Oracle存儲過程開發(fā)的要點是:
1; 使用Notepad文本編輯器,用Oracle PL/SQL編程語言寫一個存儲過程;
2; 在Oracle數(shù)據(jù)庫中創(chuàng)建一個存儲過程;
3; 在Oracle數(shù)據(jù)庫中使用SQL*Plus工具運行存儲過程;
4; 在Oracle數(shù)據(jù)庫中修改存儲過程;
5; 通過編譯錯誤調(diào)試存儲過程;
6; 刪除存儲過程;二。環(huán)境配置
包括以下內(nèi)容:
1; 一個文本編輯器Notepad;
2; Oracle SQL*Plus工具,提交Oracle SQL和PL/SQL 語句到Oracle database。
3; Oracle 10g express數(shù)據(jù)庫,它是免費使用的版本;
需要的技巧:
4; SQL基礎(chǔ)知識,包括插入、修改、刪除等
5; 使用Oracle's SQL*Plus工具的基本技巧;
6; 使用Oracle's PL/SQL 編程語言的基本技巧;三。寫一個存儲過程
在Notepad, 寫下:
CREATE OR REPLACE PROCEDURE skeletonISBEGINNULL;END;把文件存為skeleton.sql.
讓我們一行行遍歷這個存儲過程:
1 CREATE OR REPLACE PROCEDURE skeleton2 IS3 BEGIN
4 NULL;5 END;行1:CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle數(shù)據(jù)庫去創(chuàng)建一個叫做skeleton存儲過程, 如果存在就覆蓋它;行2:IS關(guān)鍵詞表明后面將跟隨一個PL/SQL體。
行3:BEGIN關(guān)鍵詞表明PL/SQL 體的開始。
四。創(chuàng)建一個存儲過程
SQL語句CREATE OR REPLACE PROCEDURE在Oracle數(shù)據(jù)庫中創(chuàng)建、編譯和保存一個存儲過程。
從Window打開SQL*Plus并且從SQL*Plus 登錄到你的數(shù)據(jù)庫;打開skeleton.sql文件。
在SQL命令提示符下輸入以下命令:
SQL@skeletonSQL/SQL*Plus裝載skeleton.sql文件的內(nèi)容到 SQL*Plus緩沖區(qū)并且執(zhí)行SQL*Plus語句;SQL*Plus 會通知你存儲過程已經(jīng)被成功地創(chuàng)建。
Oracle
RDBMS執(zhí)行每一條SQL語句,都必須經(jīng)過Oracle優(yōu)化器的評估。所以,了解優(yōu)化器是如何選擇(搜索)路徑以及索引是如何被使用的,對優(yōu)化SQL語句有很大的幫助。Explain可以用來迅速方便地查出對于給定SQL語句中的查詢數(shù)據(jù)是如何得到的即搜索路徑(我們通常稱為Access
Path)。從而使我們選擇最優(yōu)的查詢方式達到最大的優(yōu)化效果。
1.1
、安
裝
要使用EXPLAIN首先要執(zhí)行相應的腳本,創(chuàng)建出Explain_plan表。
具體腳本執(zhí)行如下:
$ORACLE_HOME/rdbms/admin/utlxplan.sql
(UNIX)
該腳本后會生成一個表這個程序會創(chuàng)建一個名為plan_table的表。
1.2
、使用
常規(guī)使用語法:
explainPLAN[SETSTATEMENT_ID[=]
評論
加載更多
Oracle執(zhí)行外部文件:
c:sqlplus
user/pwd@db
sql@new.sql
執(zhí)行多個sql文件:
1.把所有的文件都放在同一個目錄下,然后在命令行里執(zhí)行命令:
c:dir/b
d:/1.sql
會把所有的sql文件名都輸出到一個sql文件中。
2.用UltraEdit打開生成的sql文件,alt+C切換到column
mode,給所有的行前都添加一個"@",保存。
3.在sqlplus中執(zhí)行"@d:/1.sql"
如何避免''字符:
sql中可以傳遞參數(shù),但有時需要插入'',例:
SQL
select
'hello'
v
from
dual;
輸入
hello
的值:
hello
原值
1:
select
'hello'
v
from
dual
新值
1:
select
'hello'
v
from
dual
v
-----
hello
可以使用如下方法避免:
A:
SQL
select
chr(38)
||
'hello'
v
from
dual;
V
------
hello
B:
SQL
set
define
off
SQL
select
'hello'
v
from
dual;
V
------
hello