plsql中如何執行儲存過程

時間 2021-07-18 17:44:20

1樓:小丁創業

實現的方法和詳細的操作步驟如下:

1、第一步,雙擊plsql圖示進入登入介面,輸入使用者名稱和密碼,然後傳輸資料庫例項名稱,如下圖所示,然後進入下一步。

2、其次,完成上述步驟後,單擊左上角的「new」選項,然後單擊「sql window」以進入資料庫介面,如下圖所示,然後進入下一步。

3、接著,該圖是資料庫儲存過程的簡單佈局。

存在儲存過程的定義,包括輸入變數,輸出變數等。輸入變數由in定義,輸出由out定義;可變部分:可以根據程式要求定義;資料處理邏輯部分:

諸如新增,刪除和修改差異表之類的操作;異常處理部分:處理程式異常執行時的處理。

如下圖所示,然後進入下一步。

4、然後,完成上述步驟後,編寫儲存過程時,需要單擊左上角的執行按鈕或快捷鍵f8,然後可以在編譯後除錯程式。找到需要除錯的儲存過程,右鍵單擊「test」,進入除錯介面,如下圖所示,然後進入下一步。

5、隨後,完成上述步驟後,單擊左上角的除錯按鈕,如下圖所示,然後進入下一步。

6、最後,完成上述步驟後,下圖中標記的區域是除錯按鈕,可以單步執行,跳過整個部分或跳出,如下圖所示。這樣,問題就解決了。

2樓:

要成功執行這個儲存過程,你需要注意幾點:

1.select * from ods_area; 不能直接在pl/sql 中作為語句執行。

應該用 select 欄位 into plsql變數 from 表名;

的形式來獲取表中的資料,儲存到plsql變數中。

2. 儲存過程的語法格式為:

create or replace procedure area

is--變數宣告;

begin

--過程主體;

end area;

3. 如果儲存過程**無誤,可以通過 "/" 來執行**,編譯儲存過程。

4.通過exec 或 execute 來呼叫編譯後的儲存過程。

例如:-- 建立procedure:

create or replace procedure area

isnum number ;

v_arearecord dual%rowtype;

begin

--例子1

select * into v_arearecord from dual;

--例子2

select 12345 into num from dual;

end area;

/-- 通過 / 執行;

--呼叫

exec area;

3樓:

create or replace procedure job_table as

v_sql varchar2(2000);

begin

v_sql:='create table job_test2 as select * from job_test';

execute immediate v_sql;

exception

when others

then

rollback;

end job_table;

儲存過程內不能直接使用create或alter,需要使用execute執行動態語句才可以

還有執行儲存過程,必須在命令視窗內執行

4樓:匿名使用者

貼一下錯誤提示,先編譯通過再去執行。

5樓:月殤傾城榒

out 引數需要設定一個變數接收返回值

執行:declare

test sys_refcursor

begin

wyl_sp1(test);

dbms_output.put_line(test);

end;

請採納。

如何在plsql中執行儲存過程,plsql中如何執行儲存過程?

千鋒教育 create or replace procedure job table asv sql varchar2 2000 begin v sql create table job test2 as select from job test execute immediate v sql ex...

如何寫儲存過程,如何寫儲存過程

建立儲存過程 create procedure userdata in id int begin select from userdata where userflag id end 其中in是傳進去的變數 drop procedure userdata 銷燬這個儲存過程。call userdata...

oracle儲存過程的建立和執行問題

1.儲存過程中不能直接select 出結果,定義一些變數 之後select into 變數 2.既然是select就沒有必要用動態sql了,而且你的v sql 拼的有問題 你是在pl sql的sql語句視窗執行的嗎?在sql語句視窗要執行儲存過程的話要用語句塊begin sp ys 201305 5...