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

時間 2021-08-11 17:13:29

1樓:千鋒教育

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; exception when others then rollback;end job_table; 儲存過程內不能直接使用create或alter,需要使用execute執行動態語句才可以 還有執行儲存過程,必須在命令視窗內執行

2樓:匿名使用者

先定義包規範:create or replace package zhidao_pkg astype t_retset is ref cursor;procedure test_proc (condition1 varchar2,condition2 varchar2,condition3 varchar2,condition4 varchar2,r_cursor out t_retset,status out int);end zhidao_pkg;包體建立create or replace package body zhidao_pkg isprocedure test_proc (condition1 varchar2,condition2 varchar2,condition3 varchar2,condition4 varchar2,r_cursor out t_retset,status out int) as begin .end zhidao_pkg;呼叫:

sql> var cur refcursorsql> var stas intsql> exec test(10,:cur,:stas)pl/sql 過程已成功完成。

sql> print :cursql> print :stas希望對你有幫助,有問題再追問吧,望採納。

plsql中如何執行儲存過程?

3樓:小丁創業

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

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

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

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

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

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

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

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

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

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

4樓:

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

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;

5樓:

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執行動態語句才可以

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

6樓:匿名使用者

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

7樓:月殤傾城榒

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

執行:declare

test sys_refcursor

begin

wyl_sp1(test);

dbms_output.put_line(test);

end;

請採納。

如何在儲存過程定義臨時變數,如何在儲存過程定義乙個臨時變數?

create procedure prc temp v in in char,v out out char as v temp char 1 begin v temp 1 if v in 0 then v out v temp else v out v in end if end 這一段裡面v in...

儲存過程插入,如何在儲存過程中實現插入更新資料

資料型別不匹配的原因吧,你在檢查下。還有缺少乙個end與begin對應 缺少乙個end與begin對應 如何在儲存過程中實現插入更新資料 pl sql寫儲存過程,怎麼插入新資料 在儲存過程中插入資料肯定用到sql語句,寫好insert語句就好了。create or replace procedure...

oracle pl sql儲存過程如何執行,我選專案後右鍵test測試什麼反應都沒有

沙歆奚舒 不管你建立的觸發器是insert update delete型別!其執行順序都是按照的你sql語句!你一條sql語句不會執行三種型別,所以沒啥順序!如,a表建立了觸發器有這三種型別 在你操作a表的刪除語句時,a表就只會去尋找delete要執行的語句! 如果 procedure everym...