新聞中心
在Oracle里,輸入?yún)?shù)怎么寫?
你也沒給出個表名,臨時給你寫個例子,自己運行看看結(jié)果吧
目前成都創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、晉源網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
建表
create table orders(oid varchar2(10),
price int);插入數(shù)據(jù)
insert into orders values ('1111',100);
insert into orders values ('1111',200);
insert into orders values ('2222',400);建立存儲過程
create or replace procedure p_orders
(v_oid varchar2)
as
v_count int;
v_pirce int;
begin
select count(*) into v_count from orders where oid=v_oid;
if v_count=0
then
dbms_output.put_line('訂單編號不存在');
else
select sum(price) into v_pirce from orders where oid=v_oid;
dbms_output.put_line('編號為'||v_oid||'的訂單金額為'||v_pirce);
end if;
end;
執(zhí)行1
begin
p_orders('3333');--括號里這個就是訂單編號
end;這個執(zhí)行結(jié)果是
執(zhí)行2
begin
p_orders('1111');--括號里這個就是訂單編號
end;
然后你自己再改改吧
如何修改oracle參數(shù)sessions
先備份spfile
1.通過SQLPlus修改
Oracle的sessions和processes的關(guān)系是
sessions=1.1*processes + 5
使用sys,以sysdba權(quán)限登錄:
SQL show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL alter system set processes=400 scope = spfile;
系統(tǒng)已更改。
SQL show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL create pfile from spfile;
文件已創(chuàng)建。
重啟數(shù)據(jù)庫,OK!
【注:sessions是個派生值,由processes的值決定,公式sessions=1.1*process + 5】
2.通過修改oracle配置文件進行修改
修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是init.ora文件,在9i中修改init.ora文件是無效的,這個文件由于是一個二進制的文件,不能直接使用notepad此類的編輯器打開。
否則會報錯誤ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之類的可以編輯二進制文件的編輯器打開此文件(直接編輯二進制文件),然后在Windows服務(wù)中重新啟動Oracle服務(wù)器即可。
3.通過Oracle Enterprise Manager Console在圖形化管理器中修改
a.以系統(tǒng)管理員的身份登入
b.進入數(shù)據(jù)庫的例程-配置-一般信息-所有初始化參數(shù)
c.修改processes的值
d.Sessions的值由公式sessions=1.1*process + 5派生得到
ORACLE中如何為存儲過程傳遞參數(shù)?
第一種:只讀。參數(shù)是只讀的,不能修改,即調(diào)用時傳遞進來的是常量,或者變量(但變量不能在存儲過程中修改)。通常select及DML類型的存儲過程傳遞的是in類型的參數(shù)。
第二種:只寫。忽略調(diào)用語句傳遞的任何參數(shù),并在函數(shù)(過程)內(nèi)部給這些參數(shù)賦值,因此是只寫的。(這種情況是在函數(shù)或過程內(nèi)部給參數(shù)重新賦值,但重新賦值后的參數(shù)是無法被外部調(diào)用的(好像游標(biāo)類型的參數(shù)除外))
CREATE OR REPLACE? PROCEDURE "SCOTT"."SWAP" (firstValue out
number, secondValue out? number) is
temp number;
begin
temp := firstValue;
firstValue := secondValue;
secondValue := temp;
end swap;
外部調(diào)用:
set serveroutput on;
declare
firstVal number;
secondVal number;
begin
firstVal := 10;
secondVal := 20;
scott.swap(firstVal,secondVal);
dbms_output.put_line('first is ' || firstVal);
dbms_output.put_line('second is ' || secondVal);
end;
無法在外部訪問到firstValue與secondValue的值。此時打印出的結(jié)果為:
first is
second is
第三種:讀或?qū)憽_@可以完全控制參數(shù),讀取傳遞的參數(shù)的值??梢栽俸瘮?shù)(過程)內(nèi)部修改參數(shù)的值,在退出函數(shù)(過程)后,這些參數(shù)被賦給在函數(shù)內(nèi)部寫入的值,這樣就可以返回多個值。(即入口參數(shù)寫入值后,可以傳遞到函數(shù)(過程)的外部,供外部調(diào)用的時候使用)
ps:函數(shù)中的返回值為如下幾種:
char; ?varchar2; number; integer; date; boolean; table; record
SQL CREATE OR REPLACE PROCEDURE HelloWorld2 (
2 ???p_user_name IN ????VARCHAR2,
3 ???p_out_val ??OUT ???VARCHAR2,
4 ???p_inout_val IN OUT VARCHAR2
5 ) AS
6 BEGIN
7 ????dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');
8 ????p_out_val := 'A';
9 ????p_inout_val := 'B';
10 END HelloWorld2;
11 /
Procedure created.
SQL DECLARE
2 ???p_outval VARCHAR2(10);
3 ???p_inoutval VARCHAR2(10) := '~Hi~';
4 BEGIN
5 ???HelloWorld2('Edward', p_outval, p_inoutval);
6
7 ???dbms_output.put_line('p_outval=' || p_outval);
8 ???dbms_output.put_line('p_inoutval=' || p_inoutval);
9 END;
10 /
Hello Edward~Hi~!
p_outval=A
p_inoutval=B
PL/SQL procedure successfully completed.
分享名稱:oracle怎么刷參數(shù),簡述Oracle初始化參數(shù)文件
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/dseepeh.html