oracle存儲過程
1. oracle存儲過程 ||什麼意思
在oracle裡面 ||想當於連接的意思!~
兩個字元型合並在一起!~
'a' || 'a' 結果就是'aa'
2. oracle怎麼執行存儲過程
sqlplus或者PL/SQL
SQL窗口
輸入(單獨調用存儲過程):
無參數
EXEC
過程名;
或者
BEGIN
過程名
END;
IN
參數
EXEC
過程名(入參數..);
或者
BEGIN
過程名(入參數...)
END;
OUT參數,IN
OUT參數
variable
綁定變數名
數據類型;
//定義一個變數接收出參數的值;
EXEC
過程名(:綁定變數名);
3. oracle 存儲過程中的 := 和=有什麼區別
:= 是賦值符號,例如: a := 2, 那麼變數a的值,就是2了
= 是比較符號, 例如: ... WHERE 欄位名 = 2,和 > < 是一樣的性質
4. oracle 存儲過程中調用存儲過程
一個帶參數的存儲過程。
SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (
2 p_user_name VARCHAR2
3 ) AS
4 BEGIN
5 dbms_output.put_line('Hello ' || p_user_name || '!');
6 END HelloWorld1;
7 /
Procere created.
SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 調用存儲過程的 存儲過程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /
Procere created.
執行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!
PL/SQL procere successfully completed.
5. 請問oracle怎麼執行存儲過程
我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?
----
以上,希望對你能有幫助。
6. Oracle 的存儲過程怎麼寫。
oracle 存儲過程的基本語法
1.基本結構
CREATE OR REPLACE PROCEDURE 存儲過程名字
(
參數1 IN NUMBER,
參數2 IN NUMBER
) IS
變數1 INTEGER :=0;
變數2 DATE;
BEGIN
END 存儲過程名字
2.SELECT INTO STATEMENT
將select查詢的結果存入到變數中,可以同時將多個列存儲多個變數中,必須有一條
記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 變數1,變數2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...
3.IF 判斷
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;
4.while 循環
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;
5.變數賦值
V_TEST := 123;
6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;
7.帶參數的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(變數值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;
8.用pl/sql developer debug
連接資料庫後建立一個Test WINDOW
在窗口輸入調用SP的代碼,F9開始debug,CTRL+N單步調試
7. oracle存儲過程
create table dept
(deptno number,
dname varchar2(20),
loc varchar2(20)
)
1.如果你是取出單個的,你可以定義一個或者多個變數,將取出的值賦給變數
例如:
create or replace procere dept_procere(a in varchar2)
is
v_no number;
v_a varchar2(20);
begin
select a.deptno,a.loc into v_no,v_a
from dept a
where a.dname=a;
dbms_output.put_line('學號為:'||v_no||);
end;
2.如果你取出的是一個結果集,你可以用游標(一個簡單的例子)
create or replace procere dept_procere(a in varchar2,v_a out dept%rowtype)
is
--聲明游標
cursor c_de(a in varchar2)
is select * from dept where dname=a;
begin
--打開游標,對其中找到的記錄進行遍歷
open c_de(a);
loop
fetch c_de into v_a;
exit when c_de%notfound;
end loop;
close c_de;
dbms_output.put_line('deptno:'||v_a.deptno);
dbms_output.put_line('dname:'||v_a.dname);
dbms_output.put_line('loc:'||v_a.loc);
end;
3.可注意:在創建存儲過程的時候加上or replace,如果遇到重名的存儲過程將替換掉!
4.定義變數後面記得加上分號
5.oracle中可以對它直接賦值,可不用set, v_a:='a';
(6.給變數賦值的時候注意它的數據類型 a要單引號)
7.如果你這存儲過程是將參數賦值給一個你定義的變數的話,那這樣你不覺得是多此一舉么?一般將參數賦值給你定義的變數的話,可以進行數據類型轉換!可在此存儲過程中,沒發現它的用處
8.你取出來的數據,要放在變數或是游標中,顯示出來,不然你寫出來的存儲過程有什麼用呢?所以 select ...into ...
9.我也是剛學oracle的,希望可以互相學習一下,呵呵!上面的如有錯誤希望可以告訴我一下啊
8. 怎麼才oracle中查看存儲過程
可用語句查看或用第三方工具查看。
一、語句查看方法:
1、執行語句:
SELECTtext
FROMuser_source
WHERENAME='ProcereName'
ORDERBYline;--其中ProcereName為存儲過程名字,需要全部用大寫英文。
2、如要查P_TEST的存儲過程:
SELECTtext
FROMuser_source
WHERENAME='P_TEST'
ORDERBYline;
3、內容如下:
9. oracle 存儲過程,寫一個簡單的Oracle存儲過程
ORACLE提供的擴展SQL功能的編程語言,語法不難,和一般的開發語言差不多,關鍵是寫好需要帶著SQL調優的思想去寫。